In [1]:
#Setup the working environment
setwd("/hpc/group/pbenfeylab/mz187/")
In [2]:
# Load the basic package_Seurat
suppressMessages(library(tidyverse))
suppressMessages(library(Seurat))
suppressMessages(library(cowplot))
suppressMessages(library(ComplexHeatmap))
suppressMessages(library(circlize))
suppressMessages(library(GeneOverlap))
suppressMessages(library(gprofiler2))
suppressMessages(library(ggrepel))
suppressMessages(library(muscat))
suppressMessages(library(limma))
suppressMessages(library(scran))
suppressMessages(library(future))
suppressMessages(library(RColorBrewer))
Warning message:
“package ‘tidyverse’ was built under R version 4.2.3”
Warning message:
“package ‘tibble’ was built under R version 4.2.3”
Warning message:
“package ‘tidyr’ was built under R version 4.2.3”
Warning message:
“package ‘readr’ was built under R version 4.2.3”
Warning message:
“package ‘purrr’ was built under R version 4.2.3”
Warning message:
“package ‘dplyr’ was built under R version 4.2.3”
Warning message:
“package ‘stringr’ was built under R version 4.2.3”
Warning message:
“package ‘forcats’ was built under R version 4.2.3”
Warning message:
“package ‘lubridate’ was built under R version 4.2.3”
Warning message:
“package ‘ComplexHeatmap’ was built under R version 4.2.1”
Warning message:
“package ‘circlize’ was built under R version 4.2.3”
Warning message:
“package ‘GeneOverlap’ was built under R version 4.2.1”
Warning message:
“package ‘gprofiler2’ was built under R version 4.2.3”
Warning message:
“package ‘muscat’ was built under R version 4.2.2”
Warning message:
“package ‘limma’ was built under R version 4.2.3”
Warning message:
“package ‘scran’ was built under R version 4.2.3”
Warning message:
“package ‘SingleCellExperiment’ was built under R version 4.2.2”
Warning message:
“package ‘SummarizedExperiment’ was built under R version 4.2.2”
Warning message:
“package ‘MatrixGenerics’ was built under R version 4.2.1”
Warning message:
“package ‘matrixStats’ was built under R version 4.2.3”
Warning message:
“package ‘GenomicRanges’ was built under R version 4.2.3”
Warning message:
“package ‘BiocGenerics’ was built under R version 4.2.1”
Warning message:
“package ‘S4Vectors’ was built under R version 4.2.3”
Warning message:
“package ‘IRanges’ was built under R version 4.2.3”
Warning message:
“package ‘GenomeInfoDb’ was built under R version 4.2.3”
Warning message:
“package ‘Biobase’ was built under R version 4.2.3”
Warning message:
“package ‘scuttle’ was built under R version 4.2.3”
Warning message:
“package ‘RColorBrewer’ was built under R version 4.2.3”
In [3]:
# Read integrated Copilot project
rc.integrated <- readRDS("Rice_9S_gel_soil_WT_XK_K_20240730_seu3.rds")
In [4]:
# Find included samples
table(rc.integrated$orig.ident)
sc_192 sc_193 sc_194 sc_195 sc_199 sc_303 sc_304 sc_305 sc_306 
  6650   5296   4608   4802  10657   2151   2807   4011   2836 
In [5]:
# Check the seurat clusters for the integrated object
options(repr.plot.width=16, repr.plot.height=16)
DimPlot(rc.integrated, reduction = "umap", group.by = "seurat_clusters", label = T)
Warning message:
“Using `as.character()` on a quosure is deprecated as of rlang 0.3.0. Please use `as_label()` or `as_name()` instead.
This warning is displayed once every 8 hours.”

Re-annoate all the cell types¶

Redo clustering¶

In [ ]:
#check which graphs are available in your Seurat object by inspecting the graphs slot
names(rc.integrated@graphs)
In [ ]:
# Clustering, notice that here we choose SLM algorithm with resoltion 5. Parameter "algorithm": 1 = original Louvain algorithm; 2 = Louvain algorithm with multilevel refinement; 3 = SLM algorithm; 4 = Leiden algorithm
# Resolution: bigger-> more and smaller clusters; smaller -> fewer and larger clusters
rc.integrated <- FindClusters(rc.integrated, graph.name = "integrated_snn",resolution = 5.0, algorithm = 3)
# Run 2D UMAP
# min.dist: smaller-> points closer together within clusters, clusters appear more compact and separated
# n.neighbors: smaller -> more separation between clusters
rc.integrated <- RunUMAP(rc.integrated, reduction = "pca", dims = 1:50, n.neighbors = 30, min.dist=0.3)
options(repr.plot.width=16, repr.plot.height=16)
DimPlot(rc.integrated, reduction = "umap", group.by = "seurat_clusters", label=TRUE)

Redo annotation based on z-score and marker expression¶

In [53]:
## Highlight each cluster for cluster cell type annotation
for (i in seq(0,52)){
    rc.integrated$highlight <- as.character(rc.integrated$seurat_clusters)
    rc.integrated$highlight[which(rc.integrated$seurat_clusters!=as.character(i))]="others"
    rc.integrated$highlight <- factor(rc.integrated$highlight, levels = c('others', as.character(i)))
    options(repr.plot.width=6, repr.plot.height=6)
    print(DimPlot(rc.integrated, reduction = "umap", group.by = "highlight", label = T, order=TRUE))
}
In [10]:
# Assign cell type annotation to the clusters
rc.integrated$manual.anno <- as.character(rc.integrated$seurat_clusters)
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='0')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='1')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='2')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='3')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='4')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='5')] <- "Exodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='6')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='7')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='8')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='9')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='10')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='11')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='12')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='13')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='14')] <- "Pericycle"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='15')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='16')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='17')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='18')] <- "Exodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='19')] <- "Exodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='20')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='21')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='22')] <- "Endodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='23')] <- "Atrichoblast"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='24')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='25')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='26')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='27')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='28')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='29')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='30')] <- "Exodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='31')] <- "Phloem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='32')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='33')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='34')] <- "Mature root cells"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='35')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='36')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='37')] <- "Endodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='38')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='39')] <- "Endodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='40')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='41')] <- "Xylem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='42')] <- "Endodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='43')] <- "Sclerenchyma"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='44')] <- "Endodermis"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='45')] <- "Cortex"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='46')] <- "Phloem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='47')] <- "Meristem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='48')] <- "Trichoblast"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='49')] <- "Phloem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='50')] <- "Xylem"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='51')] <- "Pericycle"
rc.integrated$manual.anno[which(rc.integrated$seurat_clusters=='52')] <- "Atrichoblast"
In [11]:
table (rc.integrated$manual.anno)
     Atrichoblast            Cortex        Endodermis         Exodermis 
             1108              7020              2923              3915 
Mature root cells          Meristem         Pericycle            Phloem 
            14790              4549              1319              1513 
     Sclerenchyma       Trichoblast             Xylem 
             5463               391               827 
In [12]:
# Make final cell type annotation figure
order <- c("Meristem", "Atrichoblast", "Trichoblast", "Exodermis","Sclerenchyma","Cortex", "Endodermis","Pericycle", "Phloem", "Xylem","Mature root cells")
palette <- c("#360167","#59adf6", "#Ff4061", "#F8f38d", "#32CD32", "#BF40BF", "#Ffb480","#08cad1", "#9d94ff", "#834200","#b7bcc0")
rc.integrated$manual.anno <- factor(rc.integrated$manual.anno, levels = order[sort(match(unique(rc.integrated$manual.anno),order))]) 
color <- palette[sort(match(unique(rc.integrated$manual.anno),order))]
options(repr.plot.width=36, repr.plot.height=36)
DimPlot(rc.integrated, reduction = "umap", group.by = "manual.anno", cols= palette, pt.size = 2.0)
In [13]:
# Check the cell type clusters for the integrated object
options(repr.plot.width=16, repr.plot.height=8)
DimPlot(rc.integrated, reduction = "umap", group.by = "manual.anno",cols= palette, split.by = "condition", label = F)
In [11]:
# Check time zone annotation
options(repr.plot.width=36, repr.plot.height=36)
DimPlot(rc.integrated, reduction = "umap", group.by = "timezone.ID.P", order = c("Maturation2","Maturation1","Elongation","Meristem"),cols = c("#ebf8e3", "#51c8bd", "#009ac8", "#005fa8"),pt.size = 2.0)
In [12]:
# Find included samples
table(rc.integrated$orig.ident, rc.integrated$manual.anno)
        
         Meristem Atrichoblast Trichoblast Exodermis Sclerenchyma Cortex
  sc_192      891          340         170       259          630   1062
  sc_193      736          166         131       221          542    822
  sc_194      490          159          63       253          427    702
  sc_195      464          180          73       267          425    728
  sc_199      905          396         245       928         1290   1622
  sc_303      213          102          30        44           74    380
  sc_304      212          280          36        50           88    358
  sc_305      374          171          28       248          407    705
  sc_306      277          129          18       156          262    411
        
         Endodermis Pericycle Phloem Xylem Mature root cells
  sc_192        276       289    157   121              2455
  sc_193        152       252    159   108              2007
  sc_194        154       213     91    91              1965
  sc_195        153       219    101    90              2102
  sc_199        574       457    368   218              3654
  sc_303        266       259    113    61               609
  sc_304        553       339    132    55               704
  sc_305        274       205    235    41              1323
  sc_306        338       157    150    38               900
In [13]:
# Find included samples
table(rc.integrated$condition, rc.integrated$manual.anno)
     
      Meristem Atrichoblast Trichoblast Exodermis Sclerenchyma Cortex
  X.K     3486         1241         682      1928         3314   4936
  K       1076          682         112       498          831   1854
     
      Endodermis Pericycle Phloem Xylem Mature root cells
  X.K       1309      1430    876   628             12183
  K         1431       960    630   195              3536
In [14]:
# Find included samples
table(rc.integrated$orig.ident, rc.integrated$timezone.ID.P)
        
         Elongation Maturation1 Maturation2 Meristem
  sc_192       1695         599        3037     1319
  sc_193       1353         514        2469      960
  sc_194       1195         371        2382      660
  sc_195       1226         385        2516      675
  sc_199       3598         977        4544     1538
  sc_303        374         190         997      590
  sc_304        389         208        1337      873
  sc_305       1224         354        1810      623
  sc_306        726         303        1358      449

Subgroup the Kitaake cells¶

In [15]:
table(rc.integrated$condition)
  X.K     K 
32013 11805 
In [14]:
## Subgroup the "normal" groups for the following analysis
rc.kitaake <- subset(rc.integrated, cells=colnames(rc.integrated)[which(rc.integrated$condition!="X.K")])
In [15]:
# Define the datasets used for Gel VS Soil comparison
rc.kitaake$comparison <- rc.kitaake$orig.ident %in% c("sc_305","sc_306")

table(rc.kitaake$comparison)

table(rc.kitaake$orig.ident)

rc.kitaake$comparison <- as.character(rc.kitaake$comparison)

rc.kitaake$comparison <- gsub("TRUE", "soil", rc.kitaake$comparison,
                               ignore.case = FALSE, perl = FALSE,
                               fixed = T, useBytes = FALSE)

rc.kitaake$comparison <- gsub("FALSE", "gel", rc.kitaake$comparison,
                               ignore.case = FALSE, perl = FALSE,
                               fixed = T, useBytes = FALSE)

rc.kitaake$comparison <- factor(rc.kitaake$comparison , 
                                 levels=c("gel", "soil"))

table(rc.kitaake$comparison, rc.kitaake$orig.ident)

# Get cell number included in each group
table(rc.kitaake$comparison)
FALSE  TRUE 
 4958  6847 
sc_303 sc_304 sc_305 sc_306 
  2151   2807   4011   2836 
      
       sc_303 sc_304 sc_305 sc_306
  gel    2151   2807      0      0
  soil      0      0   4011   2836
 gel soil 
4958 6847 
In [16]:
table(rc.kitaake$comparison, rc.kitaake$manual.anno)
      
       Meristem Atrichoblast Trichoblast Exodermis Sclerenchyma Cortex
  gel       750          247          30       157          248    787
  soil      601          203           0       662          916   1128
      
       Endodermis Pericycle Phloem Xylem Mature root cells
  gel         898       276    247   118              1200
  soil        637       203    386    81              2030
In [17]:
# Check the cell type clusters for the Kitaake object
options(repr.plot.width=16, repr.plot.height=8)
DimPlot(rc.kitaake, reduction = "umap", group.by = "manual.anno",cols= palette, 
        split.by = "comparison",pt.size = 0.5, label = F)
In [18]:
# Check the cell type clusters for the Kitaake object
options(repr.plot.width=16, repr.plot.height=8)
DimPlot(rc.kitaake, reduction = "umap", group.by = "timezone.ID.P",
        order = c("Maturation2","Maturation1","Elongation","Meristem"),
        cols = c("#ebf8e3", "#51c8bd", "#009ac8", "#005fa8"),pt.size = 0.5,
        split.by = "comparison", label = F)
In [ ]:
timezone.ID.P

Check the cell type correlation between gel and soil conditions¶

-Not done¶

In [ ]:
# Combine the cell type annotation and growth conditions
rc.comparison$celltype_condition <- paste0(rc.comparison$manual.anno,"_",rc.comparison$condition)
table(rc.comparison$celltype_condition)
In [16]:
# Change the cell type order- from outmost to inner cell layers
order <- c('Atrichoblast_gel','Atrichoblast_soil','Trichoblast_gel','Trichoblast_soil','Exodermis_gel','Exodermis_soil',
          'Sclerenchyma_gel','Sclerenchyma_soil','Cortex_gel','Cortex_soil','Endodermis_gel','Endodermis_soil',
          'Pericycle_gel','Pericycle_soil','Phloem_gel','Phloem_soil','Protoxylem_gel','Protoxylem_soil',
          'Metaxylem_gel','Metaxylem_soil','Meristem_gel','Meristem_soil','Mature root cells_gel','Mature root cells_soil')
In [ ]:
# Generate a data matrix: column name = celltype_condition, row name = gene ID
dat_cor <- c()
for (i in order){
  dat_cor <- cbind(dat_cor, rowSums(as.matrix(rc.comparison@assays$SCT@data[,which(rc.comparison$celltype_condition==i)]))/ncol(rc.comparison@assays$SCT@data[,which(rc.comparison$celltype_condition==i)]))
}
In [ ]:
# Change the clonames to the ordered cell type names
colnames(dat_cor) <- order
head(dat_cor)
In [ ]:
# Generate the correlation plot
options(repr.plot.width=12, repr.plot.height=12)
##The agglomeration method to be used. This should be (an unambiguous abbreviation of) one of "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).
##The distance measure to be used. This must be one of "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski". Any unambiguous substring can be given.
gplots::heatmap.2(cor(dat_cor,method = "spearman"),col = brewer.pal(9,"YlOrRd"),  
          hclustfun = function(x) hclust(x, method = "ward.D2"), dendrogram="none",
          distfun = function(x) dist(x, method = "euclidean"), key.title = "Spearman correlation", trace = "none",cexCol = 1, cexRow = 1, margin=c(14,14),
                  Colv=FALSE, Rowv = FALSE)
In [ ]:

DE analysis with Muscat package¶

In [19]:
# construct sce manually
my_metadata <- data.frame(sample_id = rc.kitaake$orig.ident,
group_id = rc.kitaake$comparison,
cluster_id = rc.kitaake$manual.anno)
head(my_metadata)
sce <- SingleCellExperiment(assays = list(counts = rc.kitaake@assays$RNA@counts),
colData = my_metadata)
sce
(sce <- prepSCE(sce,
kid = "cluster_id", # subpopulation assignments
gid = "group_id", # group IDs (ctrl/stim)
sid = "sample_id", # sample IDs (ctrl/stim.1234)
drop = TRUE)) # drop all other colData columns
A data.frame: 6 × 3
sample_idgroup_idcluster_id
<chr><fct><fct>
AAACCCAGTGTACATC_5sc_303gelCortex
AAACCCATCACTTTGT_5sc_303gelMature root cells
AAACGAACATTGAGGG_5sc_303gelMature root cells
AAAGAACCACTTGAAC_5sc_303gelPericycle
AAAGAACTCACAAGAA_5sc_303gelMeristem
AAAGGATAGACTCCGC_5sc_303gelMeristem
class: SingleCellExperiment 
dim: 43456 11805 
metadata(0):
assays(1): counts
rownames(43456): LOC-Os01g01010 LOC-Os01g01019 ...
  ChrSy.fgenesh.gene.77 ChrUn.fgenesh.gene.63
rowData names(0):
colnames(11805): AAACCCAGTGTACATC_5 AAACCCATCACTTTGT_5 ...
  TTTGGTTGTAGACACG_9 TTTGTTGTCTCGTCAC_9
colData names(3): sample_id group_id cluster_id
reducedDimNames(0):
mainExpName: NULL
altExpNames(0):
class: SingleCellExperiment 
dim: 43456 11805 
metadata(1): experiment_info
assays(1): counts
rownames(43456): LOC-Os01g01010 LOC-Os01g01019 ...
  ChrSy.fgenesh.gene.77 ChrUn.fgenesh.gene.63
rowData names(0):
colnames(11805): AAACCCAGTGTACATC_5 AAACCCATCACTTTGT_5 ...
  TTTGGTTGTAGACACG_9 TTTGTTGTCTCGTCAC_9
colData names(3): cluster_id sample_id group_id
reducedDimNames(0):
mainExpName: NULL
altExpNames(0):
In [20]:
# Store cluster and sample IDs, as well as the number of clusters
# and samples into the following simple variables
nk <- length(kids <- levels(sce$cluster_id))
ns <- length(sids <- levels(sce$sample_id))
names(kids) <- kids
names(sids) <- sids
In [21]:
# Data overview
# nb. of cells per cluster-sample
t(table(sce$cluster_id, sce$sample_id))
        
         Meristem Atrichoblast Trichoblast Exodermis Sclerenchyma Cortex
  sc_303      345           58           8        72          113    417
  sc_304      405          189          22        85          135    370
  sc_305      351          122           0       395          556    708
  sc_306      250           81           0       267          360    420
        
         Endodermis Pericycle Phloem Xylem Mature root cells
  sc_303        250       141    113    62               572
  sc_304        648       135    134    56               628
  sc_305        284       116    235    42              1202
  sc_306        353        87    151    39               828
In [22]:
# Aggregation of single-cell to pseudo-bulk data
pb <- aggregateData(sce,
assay = "counts", fun = "sum",
by = c("cluster_id", "sample_id"))
In [23]:
# one sheet per sub-population
assayNames(pb)
  1. 'Meristem'
  2. 'Atrichoblast'
  3. 'Trichoblast'
  4. 'Exodermis'
  5. 'Sclerenchyma'
  6. 'Cortex'
  7. 'Endodermis'
  8. 'Pericycle'
  9. 'Phloem'
  10. 'Xylem'
  11. 'Mature root cells'
In [24]:
# pseudo-bulks for 1st sub-population
t(head(assay(pb)))
A matrix: 4 × 6 of type dbl
LOC-Os01g01010LOC-Os01g01019LOC-Os01g01030LOC-Os01g01040LOC-Os01g01050LOC-Os01g01060
sc_3033531374132387305
sc_304363030341 957251
sc_30518 212246 402913
sc_30612 413245 322301
In [25]:
# Pseudo-bulk-level MDS plot
(pb_mds <- pbMDS(pb))
Removing 8349 rows with all zero counts

Removing cluster-sample instance(s) ‘Trichoblast’-‘sc_305’, ‘Trichoblast’-‘sc_306’

In [26]:
# Sample-level analysis: Pseudo-bulk methods
# construct design & contrast matrix
ei <- metadata(sce)$experiment_info
ei
mm <- model.matrix(~ 0 + ei$group_id)
mm
dimnames(mm) <- list(ei$sample_id, c(levels(ei$group_id)))
mm
contrast <- makeContrasts("gel-soil", levels = mm)
contrast
A data.frame: 4 × 3
sample_idgroup_idn_cells
<fct><fct><dbl>
sc_303gel 2151
sc_304gel 2807
sc_305soil4011
sc_306soil2836
A matrix: 4 × 2 of type dbl
ei$group_idgelei$group_idsoil
110
210
301
401
A matrix: 4 × 2 of type dbl
gelsoil
sc_30310
sc_30410
sc_30501
sc_30601
A matrix: 2 × 1 of type dbl
gel-soil
gel 1
soil-1
In [27]:
# run DS analysis
res <- pbDS(pb, design = mm, contrast = contrast,filter = "none")
  |======================================================================| 100%

In [28]:
# access results table for 1st comparison
tbl <- res$table[[1]]
In [29]:
# one data.frame per cluster
names(tbl)
  1. 'Meristem'
  2. 'Atrichoblast'
  3. 'Exodermis'
  4. 'Sclerenchyma'
  5. 'Cortex'
  6. 'Endodermis'
  7. 'Pericycle'
  8. 'Phloem'
  9. 'Xylem'
  10. 'Mature root cells'
In [30]:
# filter FDR < 5%, abs(logFC) > log2(1.5) & sort by adj. p-value # keep 1.5 or not
tbl_fil <- lapply(tbl, function(u) {
u <- dplyr::filter(u, p_adj.loc < 0.05, abs(logFC) > log2(1.5), logCPM >=1)
dplyr::arrange(u, p_adj.loc)
})
In [31]:
# nb. of DS genes & % of total by cluster
n_de <- vapply(tbl_fil, nrow, numeric(1))
p_de <- format(n_de / nrow(sce) * 100, digits = 3)
data.frame("#DS" = n_de, "%DS" = p_de, check.names = FALSE)
A data.frame: 10 × 2
#DS%DS
<dbl><chr>
Meristem4299 9.89
Atrichoblast767417.66
Exodermis2722 6.26
Sclerenchyma1703 3.92
Cortex2621 6.03
Endodermis2222 5.11
Pericycle1229 2.83
Phloem 617 1.42
Xylem 563 1.30
Mature root cells3324 7.65
In [32]:
# Merge 9 data frames for each single cell type into one big data frame for the future analysis
tb2 <- resDS(sce, res, bind = "row", cpm=FALSE, frq=TRUE)
head(tb2, n = 7)
A data.frame: 7 × 15
genecluster_idsc_303.frqsc_304.frqsc_305.frqsc_306.frqgel.frqsoil.frqlogFClogCPMFp_valp_adj.locp_adj.glbcontrast
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
1LOC-Os01g01010Meristem0.08410.06670.04270.0480.07470.04490-0.16601.040 0.105000.746000.87200.8880gel-soil
2LOC-Os01g01019Meristem0.06960.05430.00570.0160.06130.00998 1.88000.345 6.730000.009510.05790.0704gel-soil
3LOC-Os01g01030Meristem0.08410.06420.03420.0480.07330.03990-0.05280.881 0.009560.922000.96400.9690gel-soil
4LOC-Os01g01040Meristem0.63200.41000.37600.5240.51200.43800-0.83904.74010.300000.001300.01130.0144gel-soil
5LOC-Os01g01050Meristem0.35900.15800.08260.0960.25100.08820 0.61402.720 3.070000.079700.28300.3260gel-soil
6LOC-Os01g01060Meristem0.99400.95300.86300.9000.97200.87900 0.08628.540 0.163000.687000.83500.8540gel-soil
7LOC-Os01g01070Meristem0.14800.07160.07410.0560.10700.06660-0.50401.480 1.250000.264000.59400.6480gel-soil
In [68]:
# Save all the gene expression information by Muscat
write.csv(tb2, file = "./1-DE_analysis/Kitaake-GelVSSoil_DE_gene_list_full.csv", row.names = TRUE)
In [33]:
# filter FDR < 5%, abs(logFC) > log2(1.5) & sort by adj. p-value # keep 1.5 or not
tb2_sig <- filter(tb2, p_adj.loc<=0.05 & abs(logFC) > log2(1.5))
head (tb2_sig)
length(unique(tb2_sig$gene))
A data.frame: 6 × 15
genecluster_idsc_303.frqsc_304.frqsc_305.frqsc_306.frqgel.frqsoil.frqlogFClogCPMFp_valp_adj.locp_adj.glbcontrast
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
1LOC-Os01g01040Meristem0.6320.4100.37600.5240.5120.4380-0.839 4.7410.31.30e-031.13e-021.44e-02gel-soil
2LOC-Os01g01390Meristem0.1710.1040.14800.1320.1350.1410-1.240 2.5111.86.03e-045.95e-037.58e-03gel-soil
3LOC-Os01g01450Meristem0.8290.5900.62700.6160.7000.6220-1.180 6.4725.05.61e-071.36e-051.63e-05gel-soil
4LOC-Os01g01640Meristem0.8550.6250.62400.6560.7310.6370-0.872 6.0513.42.53e-042.86e-033.65e-03gel-soil
5LOC-Os01g01840Meristem0.0000.0000.01420.0080.0000.0116-6.280-1.5110.81.04e-039.38e-031.19e-02gel-soil
6LOC-Os01g01870Meristem0.4230.3260.43000.4400.3710.4340-1.800 6.0854.81.36e-131.43e-111.07e-11gel-soil
12425
In [34]:
# filter out lowly detected gene
tb2_fil <- filter(tb2_sig, gel.frq >=0.1 | soil.frq >=0.1)
head (tb2_fil)
length(unique(tb2_fil$gene))
A data.frame: 6 × 15
genecluster_idsc_303.frqsc_304.frqsc_305.frqsc_306.frqgel.frqsoil.frqlogFClogCPMFp_valp_adj.locp_adj.glbcontrast
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
1LOC-Os01g01040Meristem0.6320.4100.3760.5240.5120.438-0.8394.7410.31.30e-031.13e-021.44e-02gel-soil
2LOC-Os01g01390Meristem0.1710.1040.1480.1320.1350.141-1.2402.5111.86.03e-045.95e-037.58e-03gel-soil
3LOC-Os01g01450Meristem0.8290.5900.6270.6160.7000.622-1.1806.4725.05.61e-071.36e-051.63e-05gel-soil
4LOC-Os01g01640Meristem0.8550.6250.6240.6560.7310.637-0.8726.0513.42.53e-042.86e-033.65e-03gel-soil
5LOC-Os01g01870Meristem0.4230.3260.4300.4400.3710.434-1.8006.0854.81.36e-131.43e-111.07e-11gel-soil
6LOC-Os01g02090Meristem0.7100.3800.4470.4240.5320.438-0.9424.8213.22.75e-043.07e-033.92e-03gel-soil
9569
In [35]:
# label up vs down
tb2_fil <- tb2_fil %>% mutate(up_dn_label = case_when(logFC >=log2(1.5) ~ "Down",  
                                                      logFC <=log2(1/1.5) ~ "Up",
                                                      TRUE ~ "Not DE"))

tb2_fil$clust_up_dn <- paste(tb2_fil$cluster_id, tb2_fil$up_dn_label, sep="_")

head(tb2_fil)
A data.frame: 6 × 17
genecluster_idsc_303.frqsc_304.frqsc_305.frqsc_306.frqgel.frqsoil.frqlogFClogCPMFp_valp_adj.locp_adj.glbcontrastup_dn_labelclust_up_dn
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr><chr>
1LOC-Os01g01040Meristem0.6320.4100.3760.5240.5120.438-0.8394.7410.31.30e-031.13e-021.44e-02gel-soilUpMeristem_Up
2LOC-Os01g01390Meristem0.1710.1040.1480.1320.1350.141-1.2402.5111.86.03e-045.95e-037.58e-03gel-soilUpMeristem_Up
3LOC-Os01g01450Meristem0.8290.5900.6270.6160.7000.622-1.1806.4725.05.61e-071.36e-051.63e-05gel-soilUpMeristem_Up
4LOC-Os01g01640Meristem0.8550.6250.6240.6560.7310.637-0.8726.0513.42.53e-042.86e-033.65e-03gel-soilUpMeristem_Up
5LOC-Os01g01870Meristem0.4230.3260.4300.4400.3710.434-1.8006.0854.81.36e-131.43e-111.07e-11gel-soilUpMeristem_Up
6LOC-Os01g02090Meristem0.7100.3800.4470.4240.5320.438-0.9424.8213.22.75e-043.07e-033.92e-03gel-soilUpMeristem_Up
In [69]:
# Save all the filtered DE genes
write.csv(tb2_fil, file = "./1-DE_analysis/Kitaake-GelVSSoil_DE_gene_list_q0.05_FC1.5_10percent.csv", row.names = TRUE)
In [37]:
# Number of DEGs per cell type clusters
nb_genes_per_clust <- tb2_fil %>% group_by(cluster_id) %>% tally()

nb_de_gene_count <- tb2_fil %>% group_by(gene) %>% tally(name = "n_clusters_de")

nb_cluster_DE_sig <- left_join(tb2_fil, nb_de_gene_count)

# color up and down
nb_up_dn <- tb2_fil  %>% group_by(cluster_id, up_dn_label) %>% tally(name = "n_up_dn") %>% left_join(nb_genes_per_clust)
Joining with `by = join_by(gene)`
Joining with `by = join_by(cluster_id)`
In [38]:
# Plot the number of DEGs per cell type clusters
options(repr.plot.width=16, repr.plot.height=16)

nb_v <- ggplot(data=nb_up_dn, aes(x=reorder(cluster_id, n), y=n_up_dn, fill=factor(up_dn_label, levels=c("Up", "Down")))) +
               geom_bar(stat="identity", position="stack") + ylab("Number of DEGs") + xlab("") + 
               scale_y_continuous(limits = c(0, 7000)) +
               geom_text(aes(label=n, y = n), hjust=-0.1, vjust=0.5, size=4)  + 
               theme_cowplot() + theme(plot.margin = margin(1,1,1,1, "cm"), 
               legend.title=element_blank(), 
               legend.position = c(0.7, 0.5))

(de_up_dn_bar_v <- nb_v + coord_flip())
In [42]:
# Plot the number of cell type clusters expressed for each DEG
options(repr.plot.width=16, repr.plot.height=16)

# get number of times a gene is DE across the number of clusters
gene_de_n <- nb_de_gene_count %>%
  group_by(n_clusters_de) %>%
  tally()

total_de_gene_number <- length(unique(tb2_fil$gene))
total_de_gene_number_label <- paste(length(unique(tb2_fil$gene)), "\n Total DE genes", sep = " ")

#can toggle colors below to highlight first bar
gene_de_n$highlight <- c("yes", rep("no", (nrow(gene_de_n)-1)))

nb_gene_p3<-ggplot(data=gene_de_n, aes(x=reorder(n_clusters_de, n), y=n, fill=highlight)) +
  geom_bar(stat="identity") + 
  ylab("Number of DEGs") + 
  xlab("Number of Cell types with Differentially Expression") + 
  geom_text(aes(label=n), hjust=-0.2, vjust=0.5, size=4) + 
  annotate("text", x = 2, y=2800, label=total_de_gene_number_label, size=7) + 
  scale_fill_manual(values = c("darkgrey", "darkgrey")) + 
  scale_y_continuous(limits = c(0, 4000)) +
  theme(legend.position = "none") + theme_cowplot() + NoLegend()



(subpop_bar_v <- nb_gene_p3 + coord_flip())
Warning message:
“Removed 1 rows containing missing values (`position_stack()`).”
Warning message:
“Removed 1 rows containing missing values (`geom_text()`).”

Make the DEG number featureplot¶

In [39]:
# Copy tb2_fil for backup
tb3_fil <- tb2_fil
In [40]:
# numbers of Soil induced genes to add as metadata

(Soil_total_n <- tb3_fil %>% select(cluster_id, gene) %>% group_by(cluster_id) %>% tally(name = "total_DE"))
A tibble: 10 × 2
cluster_idtotal_DE
<chr><int>
Atrichoblast 6651
Cortex 1982
Endodermis 1910
Exodermis 2307
Mature root cells2509
Meristem 3920
Pericycle 1096
Phloem 371
Sclerenchyma 1298
Xylem 479
In [41]:
# numbers of compaction up-regulated genes to add as metadata
(Soil_up_n <- tb3_fil %>% filter(up_dn_label=="Up") %>% 
 select(cluster_id, gene) %>% group_by(cluster_id) %>% tally(name = "Soil_Up"))
A tibble: 10 × 2
cluster_idSoil_Up
<chr><int>
Atrichoblast 3195
Cortex 857
Endodermis 773
Exodermis 1153
Mature root cells 916
Meristem 1700
Pericycle 318
Phloem 194
Sclerenchyma 645
Xylem 220
In [42]:
# numbers of compaction down-regulated genes to add as metadata
(Soil_dn_n <- tb3_fil %>% filter(up_dn_label=="Down") %>% 
 select(cluster_id, gene) %>% group_by(cluster_id) %>% tally(name = "Soil_Down"))
A tibble: 10 × 2
cluster_idSoil_Down
<chr><int>
Atrichoblast 3456
Cortex 1125
Endodermis 1137
Exodermis 1154
Mature root cells1593
Meristem 2220
Pericycle 778
Phloem 177
Sclerenchyma 653
Xylem 259
In [43]:
## all genes background 
# DEG results with gene freqs
(res_to_write_frq <- resDS(sce, res, bind = "row", cpm=TRUE, frq=T))
# Output for all background genes with frequency filtering
all_bg <- filter(res_to_write_frq,
                gel.frq >=0.1 | soil.frq >=0.1)
A data.frame: 270394 × 19
genecluster_idsc_303.cpmsc_304.cpmsc_305.cpmsc_306.cpmsc_303.frqsc_304.frqsc_305.frqsc_306.frqgel.frqsoil.frqlogFClogCPMFp_valp_adj.locp_adj.glbcontrast
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
LOC-Os01g01010Meristem 1.2700 2.4900 2.260 1.8600.08410.066700.042700.0480.074700.04490-0.1660 1.040 0.105007.46e-018.72e-018.88e-01gel-soil
LOC-Os01g01019Meristem 1.1300 2.0700 0.251 0.6190.06960.054300.005700.0160.061300.00998 1.8800 0.345 6.730009.51e-035.79e-027.04e-02gel-soil
LOC-Os01g01030Meristem 1.3500 2.0700 1.510 2.0100.08410.064200.034200.0480.073300.03990-0.0528 0.881 0.009569.22e-019.64e-019.69e-01gel-soil
LOC-Os01g01040Meristem 15.0000 23.6000 30.900 37.9000.63200.410000.376000.5240.512000.43800-0.8390 4.74010.300001.30e-031.13e-021.44e-02gel-soil
LOC-Os01g01050Meristem 8.6600 6.5700 5.030 4.9500.35900.158000.082600.0960.251000.08820 0.6140 2.720 3.070007.97e-022.83e-013.26e-01gel-soil
LOC-Os01g01060Meristem266.0000501.0000366.000356.0000.99400.953000.863000.9000.972000.87900 0.0862 8.540 0.163006.87e-018.35e-018.54e-01gel-soil
LOC-Os01g01070Meristem 2.1800 2.3500 3.900 2.4800.14800.071600.074100.0560.107000.06660-0.5040 1.480 1.250002.64e-015.94e-016.48e-01gel-soil
LOC-Os01g01080Meristem 91.9000 64.2000 56.800 62.0000.96200.615000.473000.5440.775000.50200 0.3950 6.110 2.770009.58e-023.20e-013.67e-01gel-soil
LOC-Os01g01090Meristem 0.3640 0.4150 1.260 0.3090.02610.014800.022800.0080.020000.01660-1.0500-0.575 1.460002.26e-015.41e-016.01e-01gel-soil
LOC-Os01g01115Meristem 0.0000 0.0691 0.000 0.0000.00000.002470.000000.0000.001330.00000 1.9500-2.640 0.200006.55e-018.27e-018.42e-01gel-soil
LOC-Os01g01120Meristem 1.0200 0.4150 1.760 1.0800.06380.012300.031300.0240.036000.02830-0.9340 0.200 2.100001.47e-014.26e-014.77e-01gel-soil
LOC-Os01g01150Meristem 10.4000 8.2300 10.200 9.2800.47000.168000.168000.1760.307000.17100-0.0628 3.270 0.039508.42e-019.28e-019.37e-01gel-soil
LOC-Os01g01160Meristem 1.2400 1.1800 0.880 0.4640.08700.037000.019900.0120.060000.01660 0.8110 0.217 1.390002.39e-015.58e-016.16e-01gel-soil
LOC-Os01g01170Meristem 0.6180 0.8300 1.510 1.3900.03770.027200.025600.0320.032000.02830-1.0200 0.162 2.400001.21e-013.75e-014.26e-01gel-soil
LOC-Os01g01280Meristem 2.2500 2.4200 3.770 5.7200.12800.064200.062700.0840.093300.07150-1.0200 1.800 5.800001.61e-028.71e-021.05e-01gel-soil
LOC-Os01g01295Meristem 29.8000 29.8000 35.500 33.7000.83500.477000.436000.4240.641000.43100-0.2160 5.010 0.723003.95e-016.98e-017.53e-01gel-soil
LOC-Os01g01302Meristem 2.4000 3.9400 1.760 2.3200.13600.101000.037000.0440.117000.03990 0.6260 1.490 1.790001.80e-014.75e-015.33e-01gel-soil
LOC-Os01g01307Meristem174.0000222.0000321.000239.0000.99700.886000.900000.8840.937000.89400-0.4980 7.900 5.160002.32e-021.15e-011.37e-01gel-soil
LOC-Os01g01312Meristem 5.0200 3.4600 3.770 3.7100.28700.088900.071200.0840.180000.07650 0.1900 2.070 0.227006.33e-018.27e-018.42e-01gel-soil
LOC-Os01g01380Meristem 0.5090 0.8300 1.010 0.3090.03770.024700.019900.0080.030700.01500-0.0508-0.324 0.004079.49e-019.79e-019.80e-01gel-soil
LOC-Os01g01390Meristem 2.9800 3.9400 8.930 7.2700.17100.104000.148000.1320.135000.14100-1.2400 2.51011.800006.03e-045.95e-037.58e-03gel-soil
LOC-Os01g01400Meristem 0.4000 0.4150 0.754 0.3090.02900.014800.014200.0080.021300.01160-0.4150-0.749 0.190006.63e-018.27e-018.43e-01gel-soil
LOC-Os01g01420Meristem 15.9000 11.5000 10.100 9.2800.64100.274000.177000.2080.443000.19000 0.5060 3.580 2.780009.56e-023.20e-013.67e-01gel-soil
LOC-Os01g01430Meristem 0.0364 0.0000 0.000 0.1550.00290.000000.000000.0040.001330.00166-1.3100-2.490 0.189006.64e-018.27e-018.43e-01gel-soil
LOC-Os01g01450Meristem 47.9000 61.3000130.000117.0000.82900.590000.627000.6160.700000.62200-1.1800 6.47025.000005.61e-071.36e-051.63e-05gel-soil
LOC-Os01g01510Meristem 11.0000 17.8000 9.180 9.1300.43200.306000.168000.1880.364000.17600 0.6450 3.590 4.470003.45e-021.55e-011.84e-01gel-soil
LOC-Os01g01570Meristem 3.3100 4.3600 6.290 7.5800.18600.114000.099700.1600.147000.12500-0.8610 2.410 5.520001.88e-029.78e-021.18e-01gel-soil
LOC-Os01g01580Meristem 1.2700 0.8300 2.640 1.5500.07830.027200.051300.0360.050700.04490-0.9750 0.696 3.060008.02e-022.84e-013.27e-01gel-soil
LOC-Os01g01590Meristem 0.1820 0.0000 0.503 0.3090.01450.000000.011400.0080.006670.00998-1.8400-1.540 1.690001.94e-014.95e-015.54e-01gel-soil
LOC-Os01g01600Meristem 0.1820 0.4840 0.251 0.6190.01450.014800.002850.0160.014700.00832-0.4270-1.060 0.144007.04e-018.44e-018.65e-01gel-soil
⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮
LOC-Os04g24670 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g20550 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g22290 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g48910 Mature root cells0002.2100000.0193000.007880-7.32-0.75334.4004.56e-099.81e-081.95e-07gel-soil
LOC-Os05g01770 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g07020 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g16960 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g17330 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g27640 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os05g35210 Mature root cells0000.1950000.0012100.000493-3.88-2.730 1.7701.83e-014.44e-015.37e-01gel-soil
LOC-Os06g45720 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g03680 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g23460 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g28380 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g30430 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g34310 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os07g37910 Mature root cells0000.1950000.0036200.001480-3.88-2.730 1.7701.83e-014.44e-015.37e-01gel-soil
LOC-Os08g36800 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os08g09090 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os08g26610 Mature root cells0000.1300000.0024200.000985-3.33-2.870 1.1302.88e-015.74e-016.74e-01gel-soil
LOC-Os08g38930 Mature root cells0000.7150000.0121000.004930-5.70-1.930 8.1104.40e-032.47e-023.85e-02gel-soil
LOC-Os08g39174 Mature root cells0000.6500000.0109000.004430-5.57-2.010 7.2007.30e-033.77e-025.74e-02gel-soil
LOC-Os09g03290 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g04500 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g24810 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g07700 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g13640 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g18490 Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
LOC-Os09g31160 Mature root cells0000.1300000.0024200.000985-3.33-2.870 1.1302.88e-015.74e-016.74e-01gel-soil
ChrUn.fgenesh.gene.63Mature root cells0000.0650000.0012100.000493-2.46-3.020 0.5384.63e-016.98e-017.76e-01gel-soil
In [44]:
# Get the total gene detected for each cluster
(bg_n <- all_bg %>% 
 select(cluster_id, gene) %>% 
group_by(cluster_id) %>% 
tally(name = "All_genes"))
A tibble: 10 × 2
cluster_idAll_genes
<chr><int>
Atrichoblast 12295
Cortex 10421
Endodermis 12633
Exodermis 12388
Mature root cells10888
Meristem 14827
Pericycle 11193
Phloem 10274
Sclerenchyma 10816
Xylem 10764
In [45]:
# Make a metadata for UMAP presentation
(de_meta_for_umap <- data.frame("barcode"=colnames(rc.kitaake), 
                               "cluster_id"=rc.kitaake$manual.anno))
A data.frame: 11805 × 2
barcodecluster_id
<chr><fct>
AAACCCAGTGTACATC_5AAACCCAGTGTACATC_5Cortex
AAACCCATCACTTTGT_5AAACCCATCACTTTGT_5Mature root cells
AAACGAACATTGAGGG_5AAACGAACATTGAGGG_5Mature root cells
AAAGAACCACTTGAAC_5AAAGAACCACTTGAAC_5Pericycle
AAAGAACTCACAAGAA_5AAAGAACTCACAAGAA_5Meristem
AAAGGATAGACTCCGC_5AAAGGATAGACTCCGC_5Meristem
AAAGGATCACACTTAG_5AAAGGATCACACTTAG_5Endodermis
AAAGGGCGTCCGATCG_5AAAGGGCGTCCGATCG_5Pericycle
AAAGGGCGTTGCCATA_5AAAGGGCGTTGCCATA_5Mature root cells
AAAGTCCAGGTGCTAG_5AAAGTCCAGGTGCTAG_5Phloem
AAAGTCCGTATCGCAT_5AAAGTCCGTATCGCAT_5Endodermis
AAAGTCCTCTGACAGT_5AAAGTCCTCTGACAGT_5Meristem
AAAGTGACATCGTGCG_5AAAGTGACATCGTGCG_5Atrichoblast
AAATGGAGTGAGCTCC_5AAATGGAGTGAGCTCC_5Mature root cells
AAATGGATCCTAGAGT_5AAATGGATCCTAGAGT_5Meristem
AACAAAGTCTGCTAGA_5AACAAAGTCTGCTAGA_5Mature root cells
AACAACCTCAGATTGC_5AACAACCTCAGATTGC_5Endodermis
AACAAGACACTTGAAC_5AACAAGACACTTGAAC_5Trichoblast
AACAAGAGTCACCCTT_5AACAAGAGTCACCCTT_5Pericycle
AACAAGAGTTTACGAC_5AACAAGAGTTTACGAC_5Phloem
AACAAGATCGCCGTGA_5AACAAGATCGCCGTGA_5Cortex
AACAAGATCGCTTTAT_5AACAAGATCGCTTTAT_5Phloem
AACAAGATCTCCTGAC_5AACAAGATCTCCTGAC_5Mature root cells
AACACACAGCTGAAAT_5AACACACAGCTGAAAT_5Meristem
AACACACAGTAAATGC_5AACACACAGTAAATGC_5Sclerenchyma
AACACACGTGCCTTTC_5AACACACGTGCCTTTC_5Cortex
AACAGGGCACCTCTGT_5AACAGGGCACCTCTGT_5Mature root cells
AACAGGGCATTGACCA_5AACAGGGCATTGACCA_5Meristem
AACAGGGGTGTGTGTT_5AACAGGGGTGTGTGTT_5Mature root cells
AACAGGGTCCGGACTG_5AACAGGGTCCGGACTG_5Mature root cells
⋮⋮⋮
TTTATGCTCCATTCAT_9TTTATGCTCCATTCAT_9Mature root cells
TTTCACACAAATCGTC_9TTTCACACAAATCGTC_9Endodermis
TTTCACACACCAGCCA_9TTTCACACACCAGCCA_9Sclerenchyma
TTTCACAGTAGCGATG_9TTTCACAGTAGCGATG_9Sclerenchyma
TTTCACAGTAGGGTAC_9TTTCACAGTAGGGTAC_9Mature root cells
TTTCAGTGTGCAATAA_9TTTCAGTGTGCAATAA_9Cortex
TTTCAGTTCGACATAC_9TTTCAGTTCGACATAC_9Mature root cells
TTTCATGCAGGCATTT_9TTTCATGCAGGCATTT_9Endodermis
TTTCATGTCGGAGATG_9TTTCATGTCGGAGATG_9Meristem
TTTCATGTCTCGGCTT_9TTTCATGTCTCGGCTT_9Mature root cells
TTTCCTCTCCCAAGCG_9TTTCCTCTCCCAAGCG_9Mature root cells
TTTCCTCTCTGCGTCT_9TTTCCTCTCTGCGTCT_9Exodermis
TTTCGATCATAGTCAC_9TTTCGATCATAGTCAC_9Mature root cells
TTTGACTAGGGCAAGG_9TTTGACTAGGGCAAGG_9Mature root cells
TTTGACTCAATACCCA_9TTTGACTCAATACCCA_9Sclerenchyma
TTTGACTTCCTACCGT_9TTTGACTTCCTACCGT_9Meristem
TTTGATCAGGTCCGAA_9TTTGATCAGGTCCGAA_9Exodermis
TTTGATCGTCCGACGT_9TTTGATCGTCCGACGT_9Sclerenchyma
TTTGATCGTCGTACTA_9TTTGATCGTCGTACTA_9Cortex
TTTGATCTCCCTCATG_9TTTGATCTCCCTCATG_9Mature root cells
TTTGATCTCGAAGCAG_9TTTGATCTCGAAGCAG_9Mature root cells
TTTGGAGAGAGCCCAA_9TTTGGAGAGAGCCCAA_9Sclerenchyma
TTTGGAGAGCGGGTTA_9TTTGGAGAGCGGGTTA_9Endodermis
TTTGGAGGTATTAAGG_9TTTGGAGGTATTAAGG_9Phloem
TTTGGAGGTGTTCCAA_9TTTGGAGGTGTTCCAA_9Endodermis
TTTGGTTAGGCTTAAA_9TTTGGTTAGGCTTAAA_9Pericycle
TTTGGTTCAGATCCTA_9TTTGGTTCAGATCCTA_9Endodermis
TTTGGTTCAGCCATTA_9TTTGGTTCAGCCATTA_9Xylem
TTTGGTTGTAGACACG_9TTTGGTTGTAGACACG_9Mature root cells
TTTGTTGTCTCGTCAC_9TTTGTTGTCTCGTCAC_9Phloem
In [46]:
# Add the quantified DEG number into the metadata
de_meta_for_umap <- left_join(de_meta_for_umap, bg_n)

de_meta_for_umap <- left_join(de_meta_for_umap, Soil_total_n)

de_meta_for_umap <- left_join(de_meta_for_umap, Soil_up_n)

de_meta_for_umap <- left_join(de_meta_for_umap, Soil_dn_n)
head(de_meta_for_umap, n =7)
Joining with `by = join_by(cluster_id)`
Joining with `by = join_by(cluster_id)`
Joining with `by = join_by(cluster_id)`
Joining with `by = join_by(cluster_id)`
A data.frame: 7 × 6
barcodecluster_idAll_genestotal_DESoil_UpSoil_Down
<chr><chr><int><int><int><int>
1AAACCCAGTGTACATC_5Cortex 104211982 8571125
2AAACCCATCACTTTGT_5Mature root cells108882509 9161593
3AAACGAACATTGAGGG_5Mature root cells108882509 9161593
4AAAGAACCACTTGAAC_5Pericycle 111931096 318 778
5AAAGAACTCACAAGAA_5Meristem 14827392017002220
6AAAGGATAGACTCCGC_5Meristem 14827392017002220
7AAAGGATCACACTTAG_5Endodermis 126331910 7731137
In [47]:
# replace NA with zero for catagories that were too small to test 

de_meta_for_umap[is.na(de_meta_for_umap)] <- 0
In [48]:
# Calculate the percentage for DEG number
de_meta_for_umap <- mutate(de_meta_for_umap, 
                          Percent_DE=(total_DE/All_genes)*100,
                          Percent_Up=(Soil_Up/All_genes)*100,
                          Percent_Dn=(Soil_Down/All_genes)*100)
head(de_meta_for_umap, n =10)
A data.frame: 10 × 9
barcodecluster_idAll_genestotal_DESoil_UpSoil_DownPercent_DEPercent_UpPercent_Dn
<chr><chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1AAACCCAGTGTACATC_5Cortex 104211982 857112519.019288 8.22377910.795509
2AAACCCATCACTTTGT_5Mature root cells108882509 916159323.043718 8.41293214.630786
3AAACGAACATTGAGGG_5Mature root cells108882509 916159323.043718 8.41293214.630786
4AAAGAACCACTTGAAC_5Pericycle 111931096 318 778 9.791834 2.841061 6.950773
5AAAGAACTCACAAGAA_5Meristem 1482739201700222026.43825511.46557014.972685
6AAAGGATAGACTCCGC_5Meristem 1482739201700222026.43825511.46557014.972685
7AAAGGATCACACTTAG_5Endodermis 126331910 773113715.119132 6.118895 9.000237
8AAAGGGCGTCCGATCG_5Pericycle 111931096 318 778 9.791834 2.841061 6.950773
9AAAGGGCGTTGCCATA_5Mature root cells108882509 916159323.043718 8.41293214.630786
10AAAGTCCAGGTGCTAG_5Phloem 10274 371 194 177 3.611057 1.888262 1.722795
In [49]:
total_de_meta <- de_meta_for_umap$total_DE
names(total_de_meta) <- colnames(rc.kitaake)

rc.kitaake <- AddMetaData(
  object = rc.kitaake,
  metadata = total_de_meta,
  col.name = 'total_DE')

up_de_meta <- de_meta_for_umap$Soil_Up
names(up_de_meta) <- colnames(rc.kitaake)

rc.kitaake <- AddMetaData(
  object = rc.kitaake,
  metadata = up_de_meta,
  col.name = 'Soil_Up')


dn_de_meta <- de_meta_for_umap$Soil_Down
names(dn_de_meta) <- colnames(rc.kitaake)

rc.kitaake <- AddMetaData(
  object = rc.kitaake,
  metadata = dn_de_meta,
  col.name = 'Soil_Down')
In [54]:
options(repr.plot.width=16, repr.plot.height=16)
FeaturePlot(rc.kitaake, 
            features = c("total_DE"), 
            max.cutoff = 2500, 
            min.cutoff = 1000,
                         label=F, 
                         order = T, 
                         cols=c("beige", "#01665e"), 
                         pt.size = 0.5) + 
                            ggtitle("Total Com DE genes") +  
                            theme_void(base_size = 16) + 
                            theme(plot.title = element_text(hjust = 0.5)) +
                                 labs(color="# genes") +  theme(plot.margin = margin(0.5,0.5,0.5,0.5, "cm"))
In [ ]:

GO term analysis with gprofiler2¶

In [55]:
## GO term analysis for DEGs
# 
markers_sel <- select(tb2_fil, gene, clust_up_dn)

markers_list <- split(markers_sel, f=markers_sel$clust_up_dn)
 
#this makes list from long df of gene lists - TARGET is what we want to keep
markers_list  <- lapply(markers_list, function(x) x[names(x)=="gene"])
# convert each sublist into character and eliminate duplicates
markers_list  <- lapply(markers_list, function(x) as.character(unique(x$gene)))
In [56]:
length(markers_list)
20
In [57]:
# Change the format of gene ID to make it recognizable: change"-" to "_"
for (i in 1:length(markers_list)){
    markers_list[[i]] <- gsub("LOC-","LOC_",markers_list[[i]])
} 
head(markers_list, n=1)
$Atrichoblast_Down =
  1. 'LOC_Os01g01050'
  2. 'LOC_Os01g01060'
  3. 'LOC_Os01g01420'
  4. 'LOC_Os01g02139'
  5. 'LOC_Os01g02150'
  6. 'LOC_Os01g02160'
  7. 'LOC_Os01g02300'
  8. 'LOC_Os01g03530'
  9. 'LOC_Os01g03680'
  10. 'LOC_Os01g03830'
  11. 'LOC_Os01g04020'
  12. 'LOC_Os01g04280'
  13. 'LOC_Os01g04350'
  14. 'LOC_Os01g04380'
  15. 'LOC_Os01g04730'
  16. 'LOC_Os01g04800'
  17. 'LOC_Os01g05130'
  18. 'LOC_Os01g05140'
  19. 'LOC_Os01g06640'
  20. 'LOC_Os01g07300'
  21. 'LOC_Os01g08850'
  22. 'LOC_Os01g09220'
  23. 'LOC_Os01g09510'
  24. 'LOC_Os01g09570'
  25. 'LOC_Os01g10440'
  26. 'LOC_Os01g10580'
  27. 'LOC_Os01g10820'
  28. 'LOC_Os01g11600'
  29. 'LOC_Os01g11650'
  30. 'LOC_Os01g11970'
  31. 'LOC_Os01g12090'
  32. 'LOC_Os01g12190'
  33. 'LOC_Os01g12464'
  34. 'LOC_Os01g12470'
  35. 'LOC_Os01g12910'
  36. 'LOC_Os01g13030'
  37. 'LOC_Os01g13060'
  38. 'LOC_Os01g13090'
  39. 'LOC_Os01g13120'
  40. 'LOC_Os01g13170'
  41. 'LOC_Os01g13270'
  42. 'LOC_Os01g13520'
  43. 'LOC_Os01g13700'
  44. 'LOC_Os01g13730'
  45. 'LOC_Os01g13760'
  46. 'LOC_Os01g14020'
  47. 'LOC_Os01g14580'
  48. 'LOC_Os01g14790'
  49. 'LOC_Os01g14830'
  50. 'LOC_Os01g14950'
  51. 'LOC_Os01g14970'
  52. 'LOC_Os01g15120'
  53. 'LOC_Os01g15600'
  54. 'LOC_Os01g15610'
  55. 'LOC_Os01g16230'
  56. 'LOC_Os01g16310'
  57. 'LOC_Os01g16450'
  58. 'LOC_Os01g16650'
  59. 'LOC_Os01g16714'
  60. 'LOC_Os01g17160'
  61. 'LOC_Os01g18080'
  62. 'LOC_Os01g18850'
  63. 'LOC_Os01g19330'
  64. 'LOC_Os01g19400'
  65. 'LOC_Os01g19940'
  66. 'LOC_Os01g21034'
  67. 'LOC_Os01g21120'
  68. 'LOC_Os01g22249'
  69. 'LOC_Os01g22352'
  70. 'LOC_Os01g22370'
  71. 'LOC_Os01g22510'
  72. 'LOC_Os01g23630'
  73. 'LOC_Os01g24070'
  74. 'LOC_Os01g24690'
  75. 'LOC_Os01g25484'
  76. 'LOC_Os01g25610'
  77. 'LOC_Os01g27140'
  78. 'LOC_Os01g27390'
  79. 'LOC_Os01g27720'
  80. 'LOC_Os01g29740'
  81. 'LOC_Os01g32080'
  82. 'LOC_Os01g32259'
  83. 'LOC_Os01g32660'
  84. 'LOC_Os01g34614'
  85. 'LOC_Os01g34620'
  86. 'LOC_Os01g36240'
  87. 'LOC_Os01g36390'
  88. 'LOC_Os01g37090'
  89. 'LOC_Os01g37910'
  90. 'LOC_Os01g37950'
  91. 'LOC_Os01g37980'
  92. 'LOC_Os01g38510'
  93. 'LOC_Os01g39010'
  94. 'LOC_Os01g39330'
  95. 'LOC_Os01g39780'
  96. 'LOC_Os01g40260'
  97. 'LOC_Os01g40290'
  98. 'LOC_Os01g40870'
  99. 'LOC_Os01g41010'
  100. 'LOC_Os01g42030'
  101. 'LOC_Os01g42120'
  102. 'LOC_Os01g42190'
  103. 'LOC_Os01g42200'
  104. 'LOC_Os01g42470'
  105. 'LOC_Os01g42690'
  106. 'LOC_Os01g42980'
  107. 'LOC_Os01g43480'
  108. 'LOC_Os01g43650'
  109. 'LOC_Os01g43774'
  110. 'LOC_Os01g43844'
  111. 'LOC_Os01g43890'
  112. 'LOC_Os01g44394'
  113. 'LOC_Os01g45110'
  114. 'LOC_Os01g45274'
  115. 'LOC_Os01g45720'
  116. 'LOC_Os01g46080'
  117. 'LOC_Os01g46720'
  118. 'LOC_Os01g47050'
  119. 'LOC_Os01g47070'
  120. 'LOC_Os01g47420'
  121. 'LOC_Os01g47570'
  122. 'LOC_Os01g47600'
  123. 'LOC_Os01g47730'
  124. 'LOC_Os01g48190'
  125. 'LOC_Os01g48810'
  126. 'LOC_Os01g49160'
  127. 'LOC_Os01g49290'
  128. 'LOC_Os01g49310'
  129. 'LOC_Os01g49820'
  130. 'LOC_Os01g50010'
  131. 'LOC_Os01g50370'
  132. 'LOC_Os01g50440'
  133. 'LOC_Os01g51020'
  134. 'LOC_Os01g51154'
  135. 'LOC_Os01g51250'
  136. 'LOC_Os01g51280'
  137. 'LOC_Os01g51390'
  138. 'LOC_Os01g51670'
  139. 'LOC_Os01g52060'
  140. 'LOC_Os01g52100'
  141. 'LOC_Os01g52340'
  142. 'LOC_Os01g52410'
  143. 'LOC_Os01g52480'
  144. 'LOC_Os01g52530'
  145. 'LOC_Os01g52594'
  146. 'LOC_Os01g53160'
  147. 'LOC_Os01g53280'
  148. 'LOC_Os01g53294'
  149. 'LOC_Os01g53350'
  150. 'LOC_Os01g53670'
  151. 'LOC_Os01g53710'
  152. 'LOC_Os01g53720'
  153. 'LOC_Os01g53880'
  154. 'LOC_Os01g53920'
  155. 'LOC_Os01g54370'
  156. 'LOC_Os01g54620'
  157. 'LOC_Os01g55110'
  158. 'LOC_Os01g55220'
  159. 'LOC_Os01g55240'
  160. 'LOC_Os01g55590'
  161. 'LOC_Os01g55799'
  162. 'LOC_Os01g55860'
  163. 'LOC_Os01g55940'
  164. 'LOC_Os01g56470'
  165. 'LOC_Os01g57004'
  166. 'LOC_Os01g57030'
  167. 'LOC_Os01g57570'
  168. 'LOC_Os01g57740'
  169. 'LOC_Os01g57770'
  170. 'LOC_Os01g57840'
  171. 'LOC_Os01g57854'
  172. 'LOC_Os01g58240'
  173. 'LOC_Os01g58310'
  174. 'LOC_Os01g58335'
  175. 'LOC_Os01g58350'
  176. 'LOC_Os01g58380'
  177. 'LOC_Os01g59440'
  178. 'LOC_Os01g59530'
  179. 'LOC_Os01g59610'
  180. 'LOC_Os01g59870'
  181. 'LOC_Os01g59990'
  182. 'LOC_Os01g60410'
  183. 'LOC_Os01g60420'
  184. 'LOC_Os01g60790'
  185. 'LOC_Os01g61060'
  186. 'LOC_Os01g61080'
  187. 'LOC_Os01g61460'
  188. 'LOC_Os01g61680'
  189. 'LOC_Os01g62010'
  190. 'LOC_Os01g62040'
  191. 'LOC_Os01g62210'
  192. 'LOC_Os01g62290'
  193. 'LOC_Os01g62370'
  194. 'LOC_Os01g62430'
  195. 'LOC_Os01g62880'
  196. 'LOC_Os01g63050'
  197. 'LOC_Os01g63210'
  198. 'LOC_Os01g63470'
  199. 'LOC_Os01g63710'
  200. 'LOC_Os01g64090'
  201. ⋯
  202. 'LOC_Os08g45040'
  203. 'LOC_Os08g45200'
  204. 'LOC_Os09g04290'
  205. 'LOC_Os09g04300'
  206. 'LOC_Os09g04384'
  207. 'LOC_Os09g05020'
  208. 'LOC_Os09g07320'
  209. 'LOC_Os09g07570'
  210. 'LOC_Os09g07800'
  211. 'LOC_Os09g07820'
  212. 'LOC_Os09g07920'
  213. 'LOC_Os09g09560'
  214. 'LOC_Os09g10010'
  215. 'LOC_Os09g10204'
  216. 'LOC_Os09g10274'
  217. 'LOC_Os09g10940'
  218. 'LOC_Os09g12050'
  219. 'LOC_Os09g12270'
  220. 'LOC_Os09g12650'
  221. 'LOC_Os09g12770'
  222. 'LOC_Os09g13570'
  223. 'LOC_Os09g13890'
  224. 'LOC_Os09g15320'
  225. 'LOC_Os09g16510'
  226. 'LOC_Os09g19820'
  227. 'LOC_Os09g19954'
  228. 'LOC_Os09g20000'
  229. 'LOC_Os09g20350'
  230. 'LOC_Os09g20480'
  231. 'LOC_Os09g21230'
  232. 'LOC_Os09g21340'
  233. 'LOC_Os09g21770'
  234. 'LOC_Os09g23160'
  235. 'LOC_Os09g23334'
  236. 'LOC_Os09g24710'
  237. 'LOC_Os09g25200'
  238. 'LOC_Os09g25490'
  239. 'LOC_Os09g25590'
  240. 'LOC_Os09g25710'
  241. 'LOC_Os09g25720'
  242. 'LOC_Os09g25760'
  243. 'LOC_Os09g26420'
  244. 'LOC_Os09g27070'
  245. 'LOC_Os09g27410'
  246. 'LOC_Os09g27830'
  247. 'LOC_Os09g28100'
  248. 'LOC_Os09g28160'
  249. 'LOC_Os09g28354'
  250. 'LOC_Os09g28470'
  251. 'LOC_Os09g29380'
  252. 'LOC_Os09g29660'
  253. 'LOC_Os09g31000'
  254. 'LOC_Os09g31040'
  255. 'LOC_Os09g31120'
  256. 'LOC_Os09g32000'
  257. 'LOC_Os09g32274'
  258. 'LOC_Os09g32500'
  259. 'LOC_Os09g32570'
  260. 'LOC_Os09g32810'
  261. 'LOC_Os09g33630'
  262. 'LOC_Os09g33640'
  263. 'LOC_Os09g33780'
  264. 'LOC_Os09g33860'
  265. 'LOC_Os09g33870'
  266. 'LOC_Os09g34910'
  267. 'LOC_Os09g35670'
  268. 'LOC_Os09g35860'
  269. 'LOC_Os09g36440'
  270. 'LOC_Os09g36460'
  271. 'LOC_Os09g36490'
  272. 'LOC_Os09g36790'
  273. 'LOC_Os09g36900'
  274. 'LOC_Os09g36950'
  275. 'LOC_Os09g37180'
  276. 'LOC_Os09g37200'
  277. 'LOC_Os09g37540'
  278. 'LOC_Os09g37860'
  279. 'LOC_Os09g37910'
  280. 'LOC_Os09g38239'
  281. 'LOC_Os09g38400'
  282. 'LOC_Os09g38670'
  283. 'LOC_Os09g38840'
  284. 'LOC_Os09g39400'
  285. 'LOC_Os09g39500'
  286. 'LOC_Os09g39650'
  287. 'LOC_Os09g39670'
  288. 'LOC_Os09g39780'
  289. 'LOC_Os09g39940'
  290. 'LOC_Os09g01960'
  291. 'LOC_Os09g02710'
  292. 'LOC_Os09g04050'
  293. 'LOC_Os09g04670'
  294. 'LOC_Os09g04720'
  295. 'LOC_Os09g06230'
  296. 'LOC_Os09g06464'
  297. 'LOC_Os09g07020'
  298. 'LOC_Os09g07440'
  299. 'LOC_Os09g07460'
  300. 'LOC_Os09g08130'
  301. 'LOC_Os09g08430'
  302. 'LOC_Os09g11250'
  303. 'LOC_Os09g12630'
  304. 'LOC_Os09g15480'
  305. 'LOC_Os09g15820'
  306. 'LOC_Os09g17152'
  307. 'LOC_Os09g17190'
  308. 'LOC_Os09g18320'
  309. 'LOC_Os09g19560'
  310. 'LOC_Os09g20024'
  311. 'LOC_Os09g20090'
  312. 'LOC_Os09g20220'
  313. 'LOC_Os09g20260'
  314. 'LOC_Os09g20430'
  315. 'LOC_Os09g20650'
  316. 'LOC_Os09g20660'
  317. 'LOC_Os09g21710'
  318. 'LOC_Os09g23530'
  319. 'LOC_Os09g23570'
  320. 'LOC_Os09g23770'
  321. 'LOC_Os09g23780'
  322. 'LOC_Os09g24580'
  323. 'LOC_Os09g24590'
  324. 'LOC_Os09g24690'
  325. 'LOC_Os09g24700'
  326. 'LOC_Os09g25430'
  327. 'LOC_Os09g25500'
  328. 'LOC_Os09g25620'
  329. 'LOC_Os09g26310'
  330. 'LOC_Os09g26460'
  331. 'LOC_Os09g26540'
  332. 'LOC_Os09g26670'
  333. 'LOC_Os09g26710'
  334. 'LOC_Os09g26730'
  335. 'LOC_Os09g26910'
  336. 'LOC_Os09g27010'
  337. 'LOC_Os09g27140'
  338. 'LOC_Os09g27260'
  339. 'LOC_Os09g27700'
  340. 'LOC_Os09g27860'
  341. 'LOC_Os09g27950'
  342. 'LOC_Os09g27960'
  343. 'LOC_Os09g28000'
  344. 'LOC_Os09g28019'
  345. 'LOC_Os09g28370'
  346. 'LOC_Os09g29170'
  347. 'LOC_Os09g29370'
  348. 'LOC_Os09g29490'
  349. 'LOC_Os09g29940'
  350. 'LOC_Os09g31180'
  351. 'LOC_Os09g31446'
  352. 'LOC_Os09g31462'
  353. 'LOC_Os09g31470'
  354. 'LOC_Os09g32240'
  355. 'LOC_Os09g32520'
  356. 'LOC_Os09g32532'
  357. 'LOC_Os09g32550'
  358. 'LOC_Os09g32690'
  359. 'LOC_Os09g32976'
  360. 'LOC_Os09g33480'
  361. 'LOC_Os09g33680'
  362. 'LOC_Os09g35010'
  363. 'LOC_Os09g35020'
  364. 'LOC_Os09g35680'
  365. 'LOC_Os09g35730'
  366. 'LOC_Os09g35780'
  367. 'LOC_Os09g35800'
  368. 'LOC_Os09g35970'
  369. 'LOC_Os09g36200'
  370. 'LOC_Os09g36320'
  371. 'LOC_Os09g36730'
  372. 'LOC_Os09g36800'
  373. 'LOC_Os09g36976'
  374. 'LOC_Os09g36982'
  375. 'LOC_Os09g37006'
  376. 'LOC_Os09g37120'
  377. 'LOC_Os09g37280'
  378. 'LOC_Os09g37510'
  379. 'LOC_Os09g37720'
  380. 'LOC_Os09g37834'
  381. 'LOC_Os09g37976'
  382. 'LOC_Os09g38070'
  383. 'LOC_Os09g38110'
  384. 'LOC_Os09g38350'
  385. 'LOC_Os09g38370'
  386. 'LOC_Os09g38500'
  387. 'LOC_Os09g38510'
  388. 'LOC_Os09g39190'
  389. 'LOC_Os09g39430'
  390. 'LOC_Os09g39540'
  391. 'LOC_Os09g39960'
  392. 'LOC_Os03g47460'
  393. 'LOC_Os01g65760'
  394. 'LOC_Os01g73940'
  395. 'LOC_Os03g07590'
  396. 'LOC_Os03g15910'
  397. 'LOC_Os05g02750'
  398. 'LOC_Os07g37840'
  399. 'LOC_Os08g19050'
  400. 'LOC_Os08g30670'
  401. 'LOC_Os09g39770'
In [58]:
# Remove all the gene IDs which does not follow "LOC_OS" format
for (i in 1:length(markers_list)){
    markers_list[[i]] <- markers_list[[i]][grep("LOC_",markers_list[[i]])]
}
In [60]:
# Load the MSU-RAP ID converter table downloaded from https://rapdb.dna.affrc.go.jp/download/irgsp1.html
msu2rap <- read.table("./ID_conversion/RAP-MSU_2023-03-15.txt.gz")
head(msu2rap, n=5)
A data.frame: 5 × 2
V1V2
<chr><chr>
1Os01g0100100LOC_Os01g01010.1,LOC_Os01g01010.2
2Os01g0100200LOC_Os01g01019.1
3Os01g0100300None
4Os01g0100400LOC_Os01g01030.1
5Os01g0100466None
In [61]:
# Convert the MSU ID to RAP ID if the MSU ID can be found in V2 column in msu2rap table
# grep does not require exact mtach
markers_list2 <- markers_list
for (i in 1:length(markers_list2)){
    for (j in 1:length(markers_list2[[i]])){
    suppressMessages(markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j],msu2rap$V2)])  
    } 
}
## There will be warning message because RAP and MSU are not strictly one to one
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
Warning message in markers_list2[[i]][j] <- msu2rap$V1[grep(markers_list2[[i]][j], :
“number of items to replace is not a multiple of replacement length”
In [62]:
#Check whether conversion works
markers_list2[[14]]
  1. 'Os01g0111900'
  2. 'Os01g0138800'
  3. 'Os01g0194600'
  4. 'Os01g0221400'
  5. 'Os01g0238500'
  6. 'Os01g0266400'
  7. 'Os01g0278950'
  8. 'Os01g0296200'
  9. 'Os01g0376600'
  10. 'None'
  11. 'Os01g0629600'
  12. 'Os01g0641800'
  13. 'Os01g0787600'
  14. 'None'
  15. 'None'
  16. 'Os01g0866000'
  17. 'Os01g0869900'
  18. 'Os01g0895200'
  19. 'Os01g0895300'
  20. 'Os01g0944100'
  21. 'Os01g0104900'
  22. 'Os01g0106400'
  23. 'Os01g0149800'
  24. 'Os01g0233000'
  25. 'Os01g0239200'
  26. 'Os01g0249200'
  27. 'Os01g0257300'
  28. 'Os01g0294700'
  29. 'None'
  30. 'Os01g0557100'
  31. 'Os01g0667200'
  32. 'Os01g0668100'
  33. 'Os01g0723800'
  34. 'Os01g0754800'
  35. 'Os01g0765400'
  36. 'Os01g0803300'
  37. 'Os01g0812900'
  38. 'Os01g0825800'
  39. 'Os01g0849000'
  40. 'Os01g0883900'
  41. 'Os01g0893700'
  42. 'Os01g0905800'
  43. 'Os01g0914000'
  44. 'Os01g0937200'
  45. 'Os10g0361900'
  46. 'Os10g0478200'
  47. 'Os10g0510400'
  48. 'Os10g0524300'
  49. 'Os10g0530600'
  50. 'Os10g0550000'
  51. 'Os10g0155500'
  52. 'None'
  53. 'Os10g0450800'
  54. 'Os10g0450900'
  55. 'Os10g0551800'
  56. 'Os10g0552600'
  57. 'Os11g0145400'
  58. 'Os11g0180000'
  59. 'Os11g0247300'
  60. 'Os11g0427700'
  61. 'Os11g0490100'
  62. 'Os11g0498600'
  63. 'Os11g0600600'
  64. 'Os11g0634800'
  65. 'Os11g0701100'
  66. 'Os11g0701500'
  67. 'Os11g0106700'
  68. 'Os11g0112000'
  69. 'Os11g0167800'
  70. 'Os11g0177400'
  71. 'Os11g0182100'
  72. 'Os11g0184900'
  73. 'Os11g0210300'
  74. 'Os11g0210500'
  75. 'Os11g0291450'
  76. 'Os11g0454200'
  77. 'Os11g0484700'
  78. 'Os11g0485500'
  79. 'Os11g0508600'
  80. 'Os11g0618300'
  81. 'Os11g0620100'
  82. 'Os11g0671000'
  83. 'Os11g0696900'
  84. 'Os12g0101800'
  85. 'None'
  86. 'Os12g0428000'
  87. 'None'
  88. 'None'
  89. 'None'
  90. 'None'
  91. 'Os12g0541300'
  92. 'Os12g0111600'
  93. 'Os12g0161700'
  94. 'Os12g0239900'
  95. 'Os12g0263800'
  96. 'Os12g0442800'
  97. 'Os12g0476200'
  98. 'Os12g0554100'
  99. 'Os12g0576900'
  100. 'Os12g0641100'
  101. 'Os02g0102300'
  102. 'Os02g0125400'
  103. 'Os02g0227400'
  104. 'Os02g0262800'
  105. 'Os02g0273700'
  106. 'Os02g0485000'
  107. 'Os02g0519700'
  108. 'Os02g0542500'
  109. 'Os02g0625300'
  110. 'Os02g0666200'
  111. 'Os02g0676400'
  112. 'Os02g0709400'
  113. 'Os02g0731400'
  114. 'Os02g0753300'
  115. 'Os02g0759700'
  116. 'Os02g0782900'
  117. 'Os02g0793700'
  118. 'Os02g0812500'
  119. 'Os02g0832400'
  120. 'Os02g0832500'
  121. 'Os02g0115700'
  122. 'Os02g0129800'
  123. 'Os02g0141300'
  124. 'Os02g0159700'
  125. 'Os02g0219900'
  126. 'Os02g0244700'
  127. 'Os02g0319300'
  128. 'Os02g0521100'
  129. 'Os02g0527200'
  130. 'Os02g0538700'
  131. 'Os02g0585200'
  132. 'Os02g0601800'
  133. 'Os02g0626100'
  134. 'Os02g0629400'
  135. 'Os02g0747600'
  136. 'Os02g0752200'
  137. 'Os02g0775300'
  138. 'Os03g0124200'
  139. 'Os03g0142800'
  140. 'Os03g0154000'
  141. 'Os03g0159100'
  142. 'Os03g0324900'
  143. 'Os03g0356700'
  144. 'Os03g0369000'
  145. 'Os03g0387900'
  146. 'Os03g0645900'
  147. 'Os03g0655100'
  148. 'Os03g0725200'
  149. 'Os03g0726100'
  150. 'Os03g0726200'
  151. 'Os03g0769700'
  152. 'None'
  153. 'Os03g0134900'
  154. 'Os03g0146100'
  155. 'Os03g0178400'
  156. 'Os03g0216700'
  157. 'Os03g0229500'
  158. 'Os03g0242300'
  159. 'Os03g0248600'
  160. 'Os03g0249700'
  161. 'Os03g0293500'
  162. 'Os03g0299600'
  163. 'Os03g0305400'
  164. 'Os03g0338000'
  165. 'Os03g0339400'
  166. 'Os03g0359100'
  167. 'Os03g0376100'
  168. 'Os03g0401300'
  169. 'Os03g0411300'
  170. 'Os03g0622500'
  171. 'Os03g0641300'
  172. 'Os03g0676400'
  173. 'Os03g0719800'
  174. 'Os03g0737000'
  175. 'Os03g0743900'
  176. 'Os03g0770800'
  177. 'Os03g0785900'
  178. 'Os03g0788600'
  179. 'Os03g0816700'
  180. 'Os04g0150300'
  181. 'Os04g0339400'
  182. 'Os04g0385700'
  183. 'Os04g0418800'
  184. 'Os04g0495400'
  185. 'Os04g0500700'
  186. 'Os04g0521100'
  187. 'Os04g0559700'
  188. 'Os04g0610800'
  189. 'Os04g0637000'
  190. 'Os04g0670500'
  191. 'Os04g0111200'
  192. 'None'
  193. 'Os04g0136700'
  194. 'Os04g0149400'
  195. 'Os04g0233400'
  196. 'Os04g0301500'
  197. 'Os04g0476100'
  198. 'Os04g0518100'
  199. 'Os04g0538300'
  200. 'Os04g0538400'
  201. 'Os04g0559200'
  202. 'Os04g0598000'
  203. 'Os04g0613700'
  204. 'Os04g0671300'
  205. 'Os05g0114700'
  206. 'Os05g0129000'
  207. 'Os05g0194900'
  208. 'Os05g0198400'
  209. 'Os05g0206000'
  210. 'Os05g0206100'
  211. 'Os05g0311500'
  212. 'Os05g0361700'
  213. 'Os05g0381600'
  214. 'Os05g0402900'
  215. 'Os05g0403000'
  216. 'Os05g0506000'
  217. 'Os05g0524400'
  218. 'Os05g0550300'
  219. 'Os05g0561400'
  220. 'Os05g0563900'
  221. 'Os05g0116000'
  222. 'Os05g0151000'
  223. 'Os05g0160300'
  224. 'Os05g0176100'
  225. 'Os05g0205800'
  226. 'Os05g0247100'
  227. 'Os05g0349200'
  228. 'Os05g0405000'
  229. 'Os05g0427200'
  230. 'Os05g0442400'
  231. 'Os05g0519700'
  232. 'Os05g0525900'
  233. 'Os05g0527100'
  234. 'Os05g0588900'
  235. 'Os06g0127100'
  236. 'Os06g0191500'
  237. 'Os06g0214800'
  238. 'Os06g0221200'
  239. 'Os06g0256500'
  240. 'Os06g0683800'
  241. 'Os06g0696600'
  242. 'Os06g0106800'
  243. 'Os06g0136600'
  244. 'Os06g0142300'
  245. 'Os06g0142400'
  246. 'Os06g0153400'
  247. 'Os06g0167000'
  248. 'Os06g0183800'
  249. 'Os06g0184300'
  250. 'Os06g0194900'
  251. 'Os06g0222400'
  252. 'Os06g0247500'
  253. 'Os06g0356800'
  254. 'Os06g0547400'
  255. 'Os06g0548200'
  256. 'None'
  257. 'Os06g0662550'
  258. 'Os06g0681200'
  259. 'Os06g0683700'
  260. 'Os06g0685200'
  261. 'Os06g0691000'
  262. 'Os06g0700700'
  263. 'Os07g0115500'
  264. 'Os07g0159200'
  265. 'Os07g0170000'
  266. 'Os07g0188800'
  267. 'Os07g0191200'
  268. 'Os07g0231500'
  269. 'Os07g0232800'
  270. 'Os07g0448800'
  271. 'Os07g0495000'
  272. 'Os07g0550600'
  273. 'Os07g0604000'
  274. 'Os07g0605200'
  275. 'Os07g0638100'
  276. 'Os07g0672500'
  277. 'Os07g0141200'
  278. 'Os07g0176500'
  279. 'Os07g0194500'
  280. 'Os07g0194800'
  281. 'Os07g0509800'
  282. 'Os07g0524900'
  283. 'Os07g0525100'
  284. 'Os07g0531200'
  285. 'Os07g0570550'
  286. 'Os07g0625800'
  287. 'Os07g0633100'
  288. 'Os07g0634400'
  289. 'Os08g0110800'
  290. 'Os08g0126300'
  291. 'Os08g0157600'
  292. 'Os08g0248100'
  293. 'Os08g0411300'
  294. 'Os08g0521000'
  295. 'None'
  296. 'Os08g0321000'
  297. 'Os08g0434700'
  298. 'None'
  299. 'Os08g0520600'
  300. 'Os08g0545500'
  301. 'None'
  302. 'None'
  303. 'Os09g0441400'
  304. 'Os09g0482800'
  305. 'Os09g0483500'
  306. 'Os09g0484200'
  307. 'Os09g0484800'
  308. 'Os09g0249000'
  309. 'Os09g0294000'
  310. 'Os09g0450300'
  311. 'Os09g0539500'
  312. 'Os01g0117000'
  313. 'Os08g0325400'
  314. 'Os01g0971000'
  315. 'None'
  316. 'None'
In [64]:
# filter out the "None" value
markers_list3 <- markers_list2
for (i in 1:length(markers_list3)){
    markers_list3[[i]] <- markers_list3[[i]][grep("Os",markers_list3[[i]])]
}
markers_list3[[2]]
  1. 'Os01g0100500'
  2. 'Os01g0102300'
  3. 'Os01g0104400'
  4. 'Os01g0108200'
  5. 'Os01g0109300'
  6. 'Os01g0111200'
  7. 'Os01g0118100'
  8. 'Os01g0118300'
  9. 'Os01g0125800'
  10. 'Os01g0125900'
  11. 'Os01g0126900'
  12. 'Os01g0129600'
  13. 'Os01g0133400'
  14. 'Os01g0134500'
  15. 'Os01g0138500'
  16. 'Os01g0138800'
  17. 'Os01g0142600'
  18. 'Os01g0144800'
  19. 'Os01g0147200'
  20. 'Os01g0151600'
  21. 'Os01g0164400'
  22. 'Os01g0165000'
  23. 'Os01g0168400'
  24. 'Os01g0172800'
  25. 'Os01g0176000'
  26. 'Os01g0177200'
  27. 'Os01g0179400'
  28. 'Os01g0179500'
  29. 'Os01g0182832'
  30. 'Os01g0185400'
  31. 'Os01g0185900'
  32. 'Os01g0191500'
  33. 'Os01g0194600'
  34. 'Os01g0198900'
  35. 'Os01g0205600'
  36. 'Os01g0208600'
  37. 'Os01g0212400'
  38. 'Os01g0218032'
  39. 'Os01g0218200'
  40. 'Os01g0219300'
  41. 'Os01g0229200'
  42. 'Os01g0232400'
  43. 'Os01g0236000'
  44. 'Os01g0241000'
  45. 'Os01g0241400'
  46. 'Os01g0242900'
  47. 'Os01g0251200'
  48. 'Os01g0253900'
  49. 'Os01g0256400'
  50. 'Os01g0263300'
  51. 'Os01g0263600'
  52. 'Os01g0264400'
  53. 'Os01g0274500'
  54. 'Os01g0276600'
  55. 'Os01g0283100'
  56. 'Os01g0290600'
  57. 'Os01g0303800'
  58. 'Os01g0306400'
  59. 'Os01g0332100'
  60. 'Os01g0337900'
  61. 'Os01g0338000'
  62. 'Os01g0339900'
  63. 'Os01g0342900'
  64. 'Os01g0348600'
  65. 'Os01g0350900'
  66. 'Os01g0355600'
  67. 'Os01g0363500'
  68. 'Os01g0367700'
  69. 'Os01g0376600'
  70. 'Os01g0392600'
  71. 'Os01g0498200'
  72. 'Os01g0508100'
  73. 'Os01g0513400'
  74. 'Os01g0514300'
  75. 'Os01g0516600'
  76. 'Os01g0521400'
  77. 'Os01g0521500'
  78. 'Os01g0541800'
  79. 'Os01g0558700'
  80. 'Os01g0558850'
  81. 'Os01g0559000'
  82. 'Os01g0574500'
  83. 'Os01g0575000'
  84. 'Os01g0582600'
  85. 'Os01g0583100'
  86. 'Os01g0593700'
  87. 'Os01g0594300'
  88. 'Os01g0600200'
  89. 'Os01g0602800'
  90. 'Os01g0603300'
  91. 'Os01g0610100'
  92. 'Os01g0611000'
  93. 'Os01g0616300'
  94. 'Os01g0618200'
  95. 'Os01g0627400'
  96. 'Os01g0627800'
  97. 'Os01g0627900'
  98. 'Os01g0631100'
  99. 'Os01g0631200'
  100. 'Os01g0633200'
  101. 'Os01g0637800'
  102. 'Os01g0639600'
  103. 'Os01g0641000'
  104. 'Os01g0644600'
  105. 'Os01g0645200'
  106. 'Os01g0647000'
  107. 'Os01g0649100'
  108. 'Os01g0653700'
  109. 'Os01g0655300'
  110. 'Os01g0661500'
  111. 'Os01g0663300'
  112. 'Os01g0664100'
  113. 'Os01g0665200'
  114. 'Os01g0665400'
  115. 'Os01g0666600'
  116. 'Os01g0666800'
  117. 'Os01g0668000'
  118. 'Os01g0672300'
  119. 'Os01g0673700'
  120. 'Os01g0678600'
  121. 'Os01g0679550'
  122. 'Os01g0679900'
  123. 'Os01g0685800'
  124. 'Os01g0696600'
  125. 'Os01g0703400'
  126. 'Os01g0703600'
  127. 'Os01g0706600'
  128. 'Os01g0710100'
  129. 'Os01g0711000'
  130. 'Os01g0711400'
  131. 'Os01g0711500'
  132. 'Os01g0711600'
  133. 'Os01g0715400'
  134. 'Os01g0720700'
  135. 'Os01g0725400'
  136. 'Os01g0725600'
  137. 'Os01g0728900'
  138. 'Os01g0729900'
  139. 'Os01g0736500'
  140. 'Os01g0743300'
  141. 'Os01g0744000'
  142. 'Os01g0747300'
  143. 'Os01g0756200'
  144. 'Os01g0757400'
  145. 'Os01g0758900'
  146. 'Os01g0760000'
  147. 'Os01g0763600'
  148. 'Os01g0767700'
  149. 'Os01g0767900'
  150. 'Os01g0769000'
  151. 'Os01g0769700'
  152. 'Os01g0772400'
  153. 'Os01g0772600'
  154. 'Os01g0772700'
  155. 'Os01g0773100'
  156. 'Os01g0777000'
  157. 'Os01g0778700'
  158. 'Os01g0805900'
  159. 'Os01g0823100'
  160. 'Os01g0829800'
  161. 'Os01g0832300'
  162. 'Os01g0836400'
  163. 'Os01g0839100'
  164. 'Os01g0841500'
  165. 'Os01g0844900'
  166. 'Os01g0846300'
  167. 'Os01g0846400'
  168. 'Os01g0846800'
  169. 'Os01g0848900'
  170. 'Os01g0853400'
  171. 'Os01g0855200'
  172. 'Os01g0856800'
  173. 'Os01g0860800'
  174. 'Os01g0862600'
  175. 'Os01g0863300'
  176. 'Os01g0866800'
  177. 'Os01g0867700'
  178. 'Os01g0874700'
  179. 'Os01g0874900'
  180. 'Os01g0875500'
  181. 'Os01g0881400'
  182. 'Os01g0882300'
  183. 'Os01g0883200'
  184. 'Os01g0885600'
  185. 'Os01g0895200'
  186. 'Os01g0895300'
  187. 'Os01g0895500'
  188. 'Os01g0899387'
  189. 'Os01g0901600'
  190. 'Os01g0907200'
  191. 'Os01g0907300'
  192. 'Os01g0910300'
  193. 'Os01g0911200'
  194. 'Os01g0911800'
  195. 'Os01g0916400'
  196. 'Os01g0917200'
  197. 'Os01g0921200'
  198. 'Os01g0923000'
  199. 'Os01g0925900'
  200. 'Os01g0926200'
  201. ⋯
  202. 'Os08g0434700'
  203. 'Os08g0446200'
  204. 'Os08g0446301'
  205. 'Os08g0447500'
  206. 'Os08g0459300'
  207. 'Os08g0461800'
  208. 'Os08g0478100'
  209. 'Os08g0478500'
  210. 'Os08g0481800'
  211. 'Os08g0492500'
  212. 'Os08g0496900'
  213. 'Os08g0502400'
  214. 'Os08g0502700'
  215. 'Os08g0505900'
  216. 'Os08g0511400'
  217. 'Os08g0511900'
  218. 'Os08g0516600'
  219. 'Os08g0517200'
  220. 'Os08g0517300'
  221. 'Os08g0517600'
  222. 'Os08g0520900'
  223. 'Os08g0528601'
  224. 'Os08g0532700'
  225. 'Os08g0540000'
  226. 'Os08g0543600'
  227. 'Os08g0544500'
  228. 'Os08g0545500'
  229. 'Os08g0545500'
  230. 'Os08g0556000'
  231. 'Os08g0556700'
  232. 'Os08g0557900'
  233. 'Os08g0561600'
  234. 'Os09g0108400'
  235. 'Os09g0114500'
  236. 'Os09g0115900'
  237. 'Os09g0120100'
  238. 'Os09g0123300'
  239. 'Os09g0240500'
  240. 'Os09g0243200'
  241. 'Os09g0248100'
  242. 'Os09g0252100'
  243. 'Os09g0252700'
  244. 'Os09g0266000'
  245. 'Os09g0266400'
  246. 'Os09g0280300'
  247. 'Os09g0306700'
  248. 'Os09g0324400'
  249. 'Os09g0337300'
  250. 'Os09g0338400'
  251. 'Os09g0338500'
  252. 'Os09g0340400'
  253. 'Os09g0344800'
  254. 'Os09g0359900'
  255. 'Os09g0361100'
  256. 'Os09g0362900'
  257. 'Os09g0364400'
  258. 'Os09g0372700'
  259. 'Os09g0376300'
  260. 'Os09g0407950'
  261. 'Os09g0416600'
  262. 'Os09g0416800'
  263. 'Os09g0420100'
  264. 'Os09g0420700'
  265. 'Os09g0423400'
  266. 'Os09g0423500'
  267. 'Os09g0436600'
  268. 'Os09g0437100'
  269. 'Os09g0438000'
  270. 'Os09g0439400'
  271. 'Os09g0439600'
  272. 'Os09g0440700'
  273. 'Os09g0443700'
  274. 'Os09g0446800'
  275. 'Os09g0451400'
  276. 'Os09g0452200'
  277. 'Os09g0458400'
  278. 'Os09g0458900'
  279. 'Os09g0462700'
  280. 'Os09g0475400'
  281. 'Os09g0478500'
  282. 'Os09g0480400'
  283. 'Os09g0484200'
  284. 'Os09g0492700'
  285. 'Os09g0497000'
  286. 'Os09g0497700'
  287. 'Os09g0499300'
  288. 'Os09g0505800'
  289. 'Os09g0506900'
  290. 'Os09g0507400'
  291. 'Os09g0509300'
  292. 'Os09g0511500'
  293. 'Os09g0512800'
  294. 'Os09g0513000'
  295. 'Os09g0513100'
  296. 'Os09g0514100'
  297. 'Os09g0514700'
  298. 'Os09g0515100'
  299. 'Os09g0518200'
  300. 'Os09g0521400'
  301. 'Os09g0530500'
  302. 'Os09g0533100'
  303. 'Os09g0534200'
  304. 'Os09g0536300'
  305. 'Os09g0539200'
  306. 'Os09g0543100'
  307. 'Os09g0544300'
  308. 'Os09g0553200'
  309. 'Os09g0565700'
  310. 'Os09g0567300'
  311. 'Os09g0567700'
  312. 'Os09g0109500'
  313. 'Os09g0127800'
  314. 'Os09g0131400'
  315. 'Os09g0242600'
  316. 'Os09g0247700'
  317. 'Os09g0249600'
  318. 'Os09g0249700'
  319. 'Os09g0258500'
  320. 'Os09g0281900'
  321. 'Os09g0297400'
  322. 'Os09g0306650'
  323. 'Os09g0306800'
  324. 'Os09g0309100'
  325. 'Os09g0315050'
  326. 'Os09g0315200'
  327. 'Os09g0315700'
  328. 'Os09g0315800'
  329. 'Os09g0322000'
  330. 'Os09g0346700'
  331. 'Os09g0403967'
  332. 'Os09g0407900'
  333. 'Os09g0420300'
  334. 'Os09g0420600'
  335. 'Os09g0420900'
  336. 'Os09g0422000'
  337. 'Os09g0423600'
  338. 'Os09g0426000'
  339. 'Os09g0426500'
  340. 'Os09g0431300'
  341. 'Os09g0432900'
  342. 'Os09g0437400'
  343. 'Os09g0444200'
  344. 'Os09g0454200'
  345. 'Os09g0461900'
  346. 'Os09g0471200'
  347. 'Os09g0476100'
  348. 'Os09g0478600'
  349. 'Os09g0481300'
  350. 'Os09g0481700'
  351. 'Os09g0482780'
  352. 'Os09g0487500'
  353. 'Os09g0487600'
  354. 'Os09g0490200'
  355. 'Os09g0490400'
  356. 'Os09g0491644'
  357. 'Os09g0491676'
  358. 'Os09g0491740'
  359. 'Os09g0491788'
  360. 'Os09g0498400'
  361. 'Os09g0498800'
  362. 'Os09g0502100'
  363. 'Os09g0504000'
  364. 'Os09g0505300'
  365. 'Os09g0507500'
  366. 'Os09g0509500'
  367. 'Os09g0511700'
  368. 'Os09g0514600'
  369. 'Os09g0515800'
  370. 'Os09g0516700'
  371. 'Os09g0517200'
  372. 'Os09g0519150'
  373. 'Os09g0526800'
  374. 'Os09g0530900'
  375. 'Os09g0531900'
  376. 'Os09g0532400'
  377. 'Os09g0533400'
  378. 'Os09g0533900'
  379. 'Os09g0534000'
  380. 'Os09g0535900'
  381. 'Os09g0537000'
  382. 'Os09g0538600'
  383. 'Os09g0538800'
  384. 'Os09g0539500'
  385. 'Os09g0540900'
  386. 'Os09g0541900'
  387. 'Os09g0542200'
  388. 'Os09g0555500'
  389. 'Os09g0558800'
  390. 'Os09g0562700'
  391. 'Os09g0566550'
  392. 'Os09g0567900'
  393. 'Os09g0572400'
  394. 'Os01g0117000'
  395. 'Os07g0111800'
  396. 'Os09g0565100'
  397. 'Os01g0720500'
  398. 'Os01g0654400'
  399. 'Os02g0695700'
  400. 'Os04g0175400'
  401. 'Os06g0301500'
In [65]:
# Run GO term analysis with gprofiler2 gost function
cluster_GO <- gost(markers_list3, organism = "osativa", correction_method = "fdr", significant = FALSE, multi_query = FALSE)

cluster_GO_df <- cluster_GO[[1]]

cluster_GO_sig <- filter(cluster_GO_df, p_value<=0.01)
head(cluster_GO_sig, n=5)
A data.frame: 5 × 14
querysignificantp_valueterm_sizequery_sizeintersection_sizeprecisionrecallterm_idsourceterm_nameeffective_domain_sizesource_orderparents
<chr><lgl><dbl><int><int><int><dbl><dbl><chr><chr><chr><int><int><list>
1Atrichoblast_DownTRUE1.087138e-5278819732620.13279270.3324873GO:0006518GO:BPpeptide metabolic process 15948 2266GO:00436....
2Atrichoblast_DownTRUE5.597424e-5266419732340.11860110.3524096GO:0006412GO:BPtranslation 15948 2194GO:00090....
3Atrichoblast_DownTRUE4.992660e-5167719732350.11910800.3471196GO:0043043GO:BPpeptide biosynthetic process1594810843GO:00065....
4Atrichoblast_DownTRUE4.830844e-4774319732420.12265590.3257066GO:0043604GO:BPamide biosynthetic process 1594811153GO:00436....
5Atrichoblast_DownTRUE4.858720e-4789819732730.13836800.3040089GO:0043603GO:BPamide metabolic process 1594811152 GO:0006807
In [66]:
## Save the whole GO list
cluster_GO_full_save <- as.matrix (cluster_GO_df)
write.csv(cluster_GO_full_save, file = "./1-DE_analysis/Kitaake_DE_gene_GO_analysis-full.csv", row.names = TRUE)
In [67]:
# Save the GO term analysis result
cluster_GO_save <- as.matrix (cluster_GO_sig)
write.csv(cluster_GO_save, file = "./1-DE_analysis/Kitaake_DE_gene_GO_analysis.csv", row.names = TRUE)
In [ ]:
# GO for up genes only - top 10 GO across all annotated cell types


up_GO <-cluster_GO_sig %>%
filter(grepl('Up', query)) 

up_GO %>%
  filter(source=="GO:BP", intersection_size>=8) %>%
 # group_by(query) %>%
  top_n(10, wt = -p_value) %>%
  arrange(desc(p_value)) -> top_up_GO

# get all terms for the top ones so that all clusters have values

top_up_GO_all <- filter(up_GO, term_id %in% top_up_GO$term_id)

#spread and plot

top_up_GO_sel <- select(top_up_GO_all, query, p_value, term_id, term_name)

spread_up_GO <- spread(top_up_GO_sel, key = query, p_value)

spread_up_GO[is.na(spread_up_GO)] <- 1

spread_up_GO_m <- as.matrix(-log10(spread_up_GO[3:ncol(spread_up_GO)]))
rownames(spread_up_GO_m) <- spread_up_GO$term_name

spread_up_GO_m_t <- t(spread_up_GO_m)

Up_GO_hm_t <- Heatmap(spread_up_GO_m_t, 
                 name = "-log10_pval", 
                 heatmap_legend_param = list(title_position="leftcenter-rot", color_bar = "continuous"), 
                 col = colorRamp2(c(0, 15), c("beige", "darkorange")), 
                 cluster_rows = T, 
                 cluster_columns = T, 
                 use_raster= FALSE, 
                 show_column_names = TRUE, 
                 show_row_names = TRUE, 
                 show_row_dend = TRUE, 
                 show_column_dend = TRUE,
                 column_names_rot = 45,
                 clustering_distance_columns = "pearson", 
                 clustering_distance_rows = "pearson",
                 row_names_gp = gpar(fontsize = 14), 
                column_names_gp = gpar(fontsize = 14))
In [ ]:
## Draw the plot for the up-regulated genes
options(repr.plot.width = 12, repr.plot.height = 12)

# padding - bottom, left, top, right
Up_GO_plot <- draw(Up_GO_hm_t, padding = unit(c(80, 30, 5, 80), "mm"), heatmap_legend_side = "left")
In [ ]:
# GO for down genes only - top 20 GO across all annotated cell types


down_GO <-cluster_GO_sig %>%
filter(grepl('Down', query)) 

down_GO %>%
  filter(source=="GO:BP", intersection_size>=8) %>%
 # group_by(query) %>%
  top_n(20, wt = -p_value) %>%
  arrange(desc(p_value)) -> top_down_GO

# get all terms for the top ones so that all clusters have values

top_down_GO_all <- filter(down_GO, term_id %in% top_down_GO$term_id)

#spread and plot

top_down_GO_sel <- select(top_down_GO_all, query, p_value, term_id, term_name)

spread_down_GO <- spread(top_down_GO_sel, key = query, p_value)

spread_down_GO[is.na(spread_down_GO)] <- 1

spread_down_GO_m <- as.matrix(-log10(spread_down_GO[3:ncol(spread_down_GO)]))
rownames(spread_down_GO_m) <- spread_down_GO$term_name

spread_down_GO_m_t <- t(spread_down_GO_m)

Down_GO_hm_t <- Heatmap(spread_down_GO_m_t, 
                 name = "-log10_pval", 
                 heatmap_legend_param = list(title_position="leftcenter-rot", color_bar = "continuous"), 
                 col = colorRamp2(c(0, 15), c("beige", "darkorange")), 
                 cluster_rows = T, 
                 cluster_columns = T, 
                 use_raster= FALSE, 
                 show_column_names = TRUE, 
                 show_row_names = TRUE, 
                 show_row_dend = TRUE, 
                 show_column_dend = TRUE,
                 column_names_rot = 45,
                 clustering_distance_columns = "pearson", 
                 clustering_distance_rows = "pearson",
                 row_names_gp = gpar(fontsize = 14), 
                column_names_gp = gpar(fontsize = 14))
In [ ]:
## Draw the plot for the up-regulated genes
options(repr.plot.width = 12, repr.plot.height = 12)

# padding - bottom, left, top, right
draw(Down_GO_hm_t, padding = unit(c(80, 30, 5, 80), "mm"), heatmap_legend_side = "left")

Plot GO term for specific cell type-Not correct files to do plotting¶

In [127]:
dat_GOup <- read.csv("./1-DE_analysis/Exodermis-upregulated-GO-incorrect.csv")
In [ ]:
head(dat_GOup)
In [ ]:
## Do GO plot for exodermis
options(repr.plot.width=16, repr.plot.height=16)
ggplot(dat_GOup, aes(x=reorder(GO.term, p.value, decreasing = TRUE),  y=p.value)) + geom_point(aes(size=intersection.size, color="#Ff4061"))+ 
  labs(title="GO term",x="", y = "p.value")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+coord_flip()
In [130]:
dat_GOdown <- read.csv("./1-DE_analysis//Exodermis-downregulated-GO-incorrect.csv")
In [ ]:
head(dat_GOdown)
In [ ]:
### Can not change the dot color
In [ ]:
## Do GO plot for exodermis
options(repr.plot.width=16, repr.plot.height=16)
ggplot(dat_GOdown, aes(x=reorder(GO.term, p.value, decreasing = TRUE),  y=p.value)) + geom_point(aes(size=Intersection.size, color="blue"))+ 
  labs(title="GO term",x="", y = "p.value")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+coord_flip()
In [ ]:

In [ ]:

Find cell type specific markers¶

In [90]:
# Find cell type markers to check the overlap the genes 
# which is specifically expressed in cell types under gel conditions
DefaultAssay(rc.gel) <- "SCT"
Idents(rc.gel) <- rc.gel$manual.anno
gel.markers <- FindAllMarkers(rc.gel, only.pos = TRUE, test.use = "wilcox",min.pct = 0.25, logfc.threshold = 0.25)
head(gel.markers, n =7)
Calculating cluster Meristem

Calculating cluster Atrichoblast

Calculating cluster Trichoblast

Calculating cluster Exodermis

Calculating cluster Sclerenchyma

Calculating cluster Cortex

Calculating cluster Endodermis

Calculating cluster Pericycle

Calculating cluster Phloem

Calculating cluster Protoxylem

Calculating cluster Metaxylem

Calculating cluster Mature root cells

A data.frame: 7 × 7
p_valavg_logFCpct.1pct.2p_val_adjclustergene
<dbl><dbl><dbl><dbl><dbl><fct><chr>
LOC-Os01g0951002.5136291.0000.4340MeristemLOC-Os01g09510
LOC-Os03g0459002.4615360.9990.5030MeristemLOC-Os03g04590
LOC-Os03g3113402.4513291.0000.6420MeristemLOC-Os03g31134
LOC-Os12g3814002.4152480.5530.1120MeristemLOC-Os12g38140
LOC-Os04g5236102.4054281.0000.7240MeristemLOC-Os04g52361
LOC-Os02g5696002.3803931.0000.4750MeristemLOC-Os02g56960
LOC-Os03g0475002.3642390.9990.5060MeristemLOC-Os03g04750
In [92]:
# Find cell type markers to check the overlap the genes 
# which is specifically expressed in cell types under soil conditions
DefaultAssay(rc.soil) <- "SCT"
Idents(rc.soil) <- rc.soil$manual.anno
soil.markers <- FindAllMarkers(rc.soil, only.pos = TRUE, test.use = "wilcox",min.pct = 0.25, logfc.threshold = 0.25)
head(soil.markers, n =7)
Calculating cluster Meristem

Calculating cluster Atrichoblast

Calculating cluster Trichoblast

Calculating cluster Exodermis

Calculating cluster Sclerenchyma

Calculating cluster Cortex

Calculating cluster Endodermis

Calculating cluster Pericycle

Calculating cluster Phloem

Calculating cluster Protoxylem

Calculating cluster Metaxylem

Calculating cluster Mature root cells

A data.frame: 7 × 7
p_valavg_logFCpct.1pct.2p_val_adjclustergene
<dbl><dbl><dbl><dbl><dbl><fct><chr>
LOC-Os04g5236102.4531371.0000.4660MeristemLOC-Os04g52361
LOC-Os03g3113402.4496191.0000.4610MeristemLOC-Os03g31134
LOC-Os10g4141002.3723010.9930.4070MeristemLOC-Os10g41410
LOC-Os08g0234002.3392191.0000.6310MeristemLOC-Os08g02340
LOC-Os03g4018002.3284440.9930.2520MeristemLOC-Os03g40180
LOC-Os01g6181402.3097441.0000.4640MeristemLOC-Os01g61814
LOC-Os10g2717402.2898681.0000.4360MeristemLOC-Os10g27174
In [91]:
# Save all the filtered DE genes
write.csv(gel.markers, file = "./1-DE_analysis/Gel_Condition_cell_type_markers.csv", row.names = TRUE)
In [93]:
# Save all the filtered DE genes
write.csv(soil.markers, file = "./1-DE_analysis/Soil_Condition_cell_type_markers.csv", row.names = TRUE)
In [94]:
# Read the atrichoblast marker gene lists
Atrichoblast.markers <- read.csv("./1-DE_analysis/Gel_Atrichoblast-markers.csv")
Atrichoblast.markers$Gene.ID
  1. 'LOC-Os10g31710'
  2. 'LOC-Os10g31680'
  3. 'LOC-Os04g499801'
  4. 'LOC-Os01g710801'
  5. 'LOC-Os10g11730'
  6. 'LOC-Os01g61610'
  7. 'LOC-Os03g06000'
  8. 'LOC-Os10g40710'
  9. 'LOC-Os04g559701'
  10. 'LOC-Os03g06010'
  11. 'LOC-Os01g25030'
  12. 'LOC-Os05g44930'
  13. 'LOC-Os10g31660'
  14. 'LOC-Os02g34940'
  15. 'LOC-Os04g33600'
  16. 'LOC-Os08g15420'
  17. 'LOC-Os09g09320'
  18. 'LOC-Os03g19990'
  19. 'LOC-Os03g38540'
  20. 'LOC-Os09g36560'
  21. 'LOC-Os04g417101'
  22. 'LOC-Os04g31120'
  23. 'LOC-Os01g636201'
  24. 'LOC-Os07g367501'
  25. 'LOC-Os05g42210'
  26. 'LOC-Os08g35190'
  27. 'LOC-Os03g30530'
  28. 'LOC-Os06g195901'
  29. 'LOC-Os10g426101'
  30. 'LOC-Os01g03980'
  31. 'LOC-Os03g04130'
  32. 'LOC-Os04g56050'
  33. 'LOC-Os01g02980'
  34. 'LOC-Os06g15600'
  35. 'LOC-Os07g43670'
  36. 'LOC-Os07g25150'
  37. 'LOC-Os07g41200'
  38. 'LOC-Os01g470801'
  39. 'LOC-Os11g14070'
  40. 'LOC-Os01g70740'
  41. 'LOC-Os12g25200'
  42. 'LOC-Os01g73000'
  43. 'LOC-Os01g71094'
  44. 'LOC-Os02g36414'
  45. 'LOC-Os01g542101'
  46. 'LOC-Os03g16410'
  47. 'LOC-Os10g19200'
  48. 'LOC-Os02g51320'
  49. 'LOC-Os03g05310'
  50. 'LOC-Os01g12840'
  51. 'LOC-Os06g02490'
  52. 'LOC-Os05g444001'
  53. 'LOC-Os06g24730'
  54. 'LOC-Os12g38051'
  55. 'LOC-Os02g02140'
  56. 'LOC-Os02g08150'
  57. 'LOC-Os01g45090'
  58. 'LOC-Os05g45450'
  59. 'LOC-Os11g37960'
  60. 'LOC-Os07g09620'
  61. 'LOC-Os07g26410'
  62. 'LOC-Os11g47670'
  63. 'LOC-Os05g02010'
  64. 'LOC-Os03g49630'
  65. 'LOC-Os01g52851'
  66. 'LOC-Os05g04440'
  67. 'LOC-Os03g05270'
  68. 'LOC-Os06g44320'
  69. 'LOC-Os07g48450'
  70. 'LOC-Os04g09260'
In [95]:
## Check gene existence in single cell data
match(Atrichoblast.markers$Gene.ID,rownames(rc.gel@assays$SCT@data))
  1. 5117
  2. 5116
  3. <NA>
  4. <NA>
  5. 4077
  6. 1578
  7. 12183
  8. 5379
  9. <NA>
  10. 13977
  11. 2636
  12. 18947
  13. 4329
  14. 11181
  15. 15926
  16. 25083
  17. 26741
  18. 12697
  19. 13059
  20. 27311
  21. <NA>
  22. 17075
  23. <NA>
  24. <NA>
  25. 18875
  26. 25412
  27. 12949
  28. <NA>
  29. <NA>
  30. 2095
  31. 13914
  32. 17860
  33. 72
  34. 21889
  35. 23535
  36. 24140
  37. 24506
  38. <NA>
  39. 6624
  40. 3804
  41. 8370
  42. 3884
  43. 3825
  44. 9623
  45. <NA>
  46. 14318
  47. 4135
  48. 11704
  49. 12156
  50. 2382
  51. 21489
  52. <NA>
  53. 20892
  54. 8577
  55. 10413
  56. 9011
  57. 1015
  58. 18963
  59. 6075
  60. 23950
  61. 24162
  62. 6268
  63. 18046
  64. 15047
  65. 1277
  66. 18122
  67. 12153
  68. 22390
  69. 23712
  70. 16828
In [96]:
## Check gene existence in single cell data
match(Atrichoblast.markers$Gene.ID,rownames(rc.soil@assays$SCT@data))
  1. 5117
  2. 5116
  3. <NA>
  4. <NA>
  5. 4077
  6. 1578
  7. 12183
  8. 5379
  9. <NA>
  10. 13977
  11. 2636
  12. 18947
  13. 4329
  14. 11181
  15. 15926
  16. 25083
  17. 26741
  18. 12697
  19. 13059
  20. 27311
  21. <NA>
  22. 17075
  23. <NA>
  24. <NA>
  25. 18875
  26. 25412
  27. 12949
  28. <NA>
  29. <NA>
  30. 2095
  31. 13914
  32. 17860
  33. 72
  34. 21889
  35. 23535
  36. 24140
  37. 24506
  38. <NA>
  39. 6624
  40. 3804
  41. 8370
  42. 3884
  43. 3825
  44. 9623
  45. <NA>
  46. 14318
  47. 4135
  48. 11704
  49. 12156
  50. 2382
  51. 21489
  52. <NA>
  53. 20892
  54. 8577
  55. 10413
  56. 9011
  57. 1015
  58. 18963
  59. 6075
  60. 23950
  61. 24162
  62. 6268
  63. 18046
  64. 15047
  65. 1277
  66. 18122
  67. 12153
  68. 22390
  69. 23712
  70. 16828
In [ ]:
## remove the genes which are not detected in either dataset
In [97]:
# Read the hormone/cell wall gene lists - ABA-filtered
Filtered.Atrichoblast.markers <- read.csv("./1-DE_analysis/Gel_Atrichoblast-markers_Filtered.csv")
Filtered.Atrichoblast.markers$Gene.ID
  1. 'LOC-Os10g31710'
  2. 'LOC-Os10g31680'
  3. 'LOC-Os10g11730'
  4. 'LOC-Os01g61610'
  5. 'LOC-Os03g06000'
  6. 'LOC-Os10g40710'
  7. 'LOC-Os03g06010'
  8. 'LOC-Os01g25030'
  9. 'LOC-Os05g44930'
  10. 'LOC-Os10g31660'
  11. 'LOC-Os02g34940'
  12. 'LOC-Os04g33600'
  13. 'LOC-Os08g15420'
  14. 'LOC-Os09g09320'
  15. 'LOC-Os03g19990'
  16. 'LOC-Os03g38540'
  17. 'LOC-Os09g36560'
  18. 'LOC-Os04g31120'
  19. 'LOC-Os05g42210'
  20. 'LOC-Os08g35190'
  21. 'LOC-Os03g30530'
  22. 'LOC-Os01g03980'
  23. 'LOC-Os03g04130'
  24. 'LOC-Os04g56050'
  25. 'LOC-Os01g02980'
  26. 'LOC-Os06g15600'
  27. 'LOC-Os07g43670'
  28. 'LOC-Os07g25150'
  29. 'LOC-Os07g41200'
  30. 'LOC-Os11g14070'
  31. 'LOC-Os01g70740'
  32. 'LOC-Os12g25200'
  33. 'LOC-Os01g73000'
  34. 'LOC-Os01g71094'
  35. 'LOC-Os02g36414'
  36. 'LOC-Os03g16410'
  37. 'LOC-Os10g19200'
  38. 'LOC-Os02g51320'
  39. 'LOC-Os03g05310'
  40. 'LOC-Os01g12840'
  41. 'LOC-Os06g02490'
  42. 'LOC-Os06g24730'
  43. 'LOC-Os12g38051'
  44. 'LOC-Os02g02140'
  45. 'LOC-Os02g08150'
  46. 'LOC-Os01g45090'
  47. 'LOC-Os05g45450'
  48. 'LOC-Os11g37960'
  49. 'LOC-Os07g09620'
  50. 'LOC-Os07g26410'
  51. 'LOC-Os11g47670'
  52. 'LOC-Os05g02010'
  53. 'LOC-Os03g49630'
  54. 'LOC-Os01g52851'
  55. 'LOC-Os05g04440'
  56. 'LOC-Os03g05270'
  57. 'LOC-Os06g44320'
  58. 'LOC-Os07g48450'
  59. 'LOC-Os04g09260'
In [98]:
## Check gene existence in single cell data
match(Filtered.Atrichoblast.markers$Gene.ID,rownames(rc.gel@assays$SCT@data))
  1. 5117
  2. 5116
  3. 4077
  4. 1578
  5. 12183
  6. 5379
  7. 13977
  8. 2636
  9. 18947
  10. 4329
  11. 11181
  12. 15926
  13. 25083
  14. 26741
  15. 12697
  16. 13059
  17. 27311
  18. 17075
  19. 18875
  20. 25412
  21. 12949
  22. 2095
  23. 13914
  24. 17860
  25. 72
  26. 21889
  27. 23535
  28. 24140
  29. 24506
  30. 6624
  31. 3804
  32. 8370
  33. 3884
  34. 3825
  35. 9623
  36. 14318
  37. 4135
  38. 11704
  39. 12156
  40. 2382
  41. 21489
  42. 20892
  43. 8577
  44. 10413
  45. 9011
  46. 1015
  47. 18963
  48. 6075
  49. 23950
  50. 24162
  51. 6268
  52. 18046
  53. 15047
  54. 1277
  55. 18122
  56. 12153
  57. 22390
  58. 23712
  59. 16828
In [99]:
## Check gene existence in single cell data
match(Filtered.Atrichoblast.markers$Gene.ID,rownames(rc.soil@assays$SCT@data))
  1. 5117
  2. 5116
  3. 4077
  4. 1578
  5. 12183
  6. 5379
  7. 13977
  8. 2636
  9. 18947
  10. 4329
  11. 11181
  12. 15926
  13. 25083
  14. 26741
  15. 12697
  16. 13059
  17. 27311
  18. 17075
  19. 18875
  20. 25412
  21. 12949
  22. 2095
  23. 13914
  24. 17860
  25. 72
  26. 21889
  27. 23535
  28. 24140
  29. 24506
  30. 6624
  31. 3804
  32. 8370
  33. 3884
  34. 3825
  35. 9623
  36. 14318
  37. 4135
  38. 11704
  39. 12156
  40. 2382
  41. 21489
  42. 20892
  43. 8577
  44. 10413
  45. 9011
  46. 1015
  47. 18963
  48. 6075
  49. 23950
  50. 24162
  51. 6268
  52. 18046
  53. 15047
  54. 1277
  55. 18122
  56. 12153
  57. 22390
  58. 23712
  59. 16828
In [100]:
# Define the "zscore" function
zscore <- function(x){(x-mean(x))/sd(x)}
In [101]:
## calculate gene list module score for each cell
Atrichoblast_module_score <- as.numeric(apply(apply(as.matrix(rc.gel@assays$SCT@data)[Filtered.Atrichoblast.markers$Gene.ID,], 1, zscore), 1, mean))
Warning message in asMethod(object):
“sparse->dense coercion: allocating vector of size 5.0 GiB”
In [102]:
## Add to meta data
rc.gel$Atrichoblast_module_score <- Atrichoblast_module_score
In [103]:
# Check the z-score for Atrichoblast markers with Feature plot
options(repr.plot.width=16, repr.plot.height=16)
FeaturePlot(rc.gel, reduction = "umap", feature="Atrichoblast_module_score", order=TRUE, pt.size=1,cols=c("lightgray","red"))
In [104]:
## calculate gene list module score for each cell
Atrichoblast_module_score2 <- as.numeric(apply(apply(as.matrix(rc.soil@assays$SCT@data)[Filtered.Atrichoblast.markers$Gene.ID,], 1, zscore), 1, mean))
Warning message in asMethod(object):
“sparse->dense coercion: allocating vector of size 6.5 GiB”
In [105]:
## Add to meta data
rc.soil$Atrichoblast_module_score2 <- Atrichoblast_module_score2
In [106]:
# Check the z-score for Atrichoblast markers with Feature plot
options(repr.plot.width=16, repr.plot.height=16)
FeaturePlot(rc.soil, reduction = "umap", feature="Atrichoblast_module_score2", order=TRUE, pt.size=1,cols=c("lightgray","red"))
In [ ]:

In [75]:
# Check DE gene of Exodermis and Atrichoblast marker
DefaultAssay(sub.comparison) <- "SCT"
options(repr.plot.width=12, repr.plot.height=6)
FeaturePlot(sub.comparison, features = "LOC-Os03g25340",
            cols = c("grey", "red"), label=F, repel=F, pt.size = 0.8, 
            label.size = 3.5, order=T, split.by="condition")
In [77]:
# Check DE gene expression-Exodermis
DefaultAssay(sub.comparison) <- "SCT"
options(repr.plot.width=12, repr.plot.height=6)
FeaturePlot(sub.comparison, features = "LOC-Os01g71860",
            cols = c("grey", "red"), label=F, repel=F, pt.size = 0.8, 
            label.size = 3.5, order=T, split.by="condition")
In [ ]:

In [ ]:

Calculate Defense and Vesicle transport gene expressions¶

In [13]:
## Subgroup the individual cell type
rc.atrichoblast <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Atrichoblast")])
rc.exodermis <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Exodermis")])
rc.sclerenchyma <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Sclerenchyma")])
rc.cortex <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Cortex")])
rc.endodermis <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Endodermis")])
rc.pericycle <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Pericycle")])
rc.phloem <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Phloem")])
rc.protoxylem <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Protoxylem")])
rc.metaxylem <- subset(rc.comparison, cells=colnames(rc.comparison)[which(rc.comparison$manual.anno == "Metaxylem")])
In [14]:
# Read the defense relevant gene list
defense.gene <- read.csv("./1-DE_analysis/Biology_process_genes//Defense_genes.csv")
defense.gene$Gene.ID
  1. 'LOC-Os05g23250'
  2. 'LOC-Os11g44990'
  3. 'LOC-Os07g19320'
  4. 'LOC-Os11g45130'
  5. 'LOC-Os05g34230'
  6. 'LOC-Os11g45090'
  7. 'LOC-Os11g12040'
  8. 'LOC-Os11g44960'
  9. 'LOC-Os11g12330'
  10. 'LOC-Os01g25760'
  11. 'LOC-Os11g45620'
  12. 'LOC-Os11g12000'
  13. 'LOC-Os01g25810'
  14. 'LOC-Os12g10330'
  15. 'LOC-Os08g14850'
  16. 'LOC-Os12g33160'
  17. 'LOC-Os05g34220'
  18. 'LOC-Os12g39620'
  19. 'LOC-Os11g45160'
  20. 'LOC-Os09g10054'
  21. 'LOC-Os07g29810'
  22. 'LOC-Os02g25900'
  23. 'LOC-Os08g07330'
  24. 'LOC-Os12g03080'
  25. 'LOC-Os12g31160'
  26. 'LOC-Os01g71114'
  27. 'LOC-Os06g43670'
  28. 'LOC-Os11g42040'
  29. 'LOC-Os09g14410'
  30. 'LOC-Os01g58530'
In [15]:
## Check gene existence in single cell data-exodermis
match(defense.gene$Gene.ID,rownames(rc.exodermis@assays$SCT@data))
  1. 19579
  2. 6222
  3. 24075
  4. 6225
  5. 19817
  6. 6224
  7. 5728
  8. 6220
  9. 5733
  10. 2653
  11. 7069
  12. 5727
  13. 2654
  14. 8195
  15. 25069
  16. 8475
  17. 18655
  18. 7801
  19. 6226
  20. 30123
  21. 23146
  22. 9391
  23. 24910
  24. 7996
  25. 8426
  26. 3828
  27. 21191
  28. 7010
  29. 27608
  30. 1480
In [ ]:

In [16]:
# Read the vesicle-mediated transport relevant gene list
transport.gene <- read.csv("./1-DE_analysis/Biology_process_genes//Transport_genes.csv")
transport.gene$Gene.ID
  1. 'LOC-Os01g67810'
  2. 'LOC-Os11g24560'
  3. 'LOC-Os04g04020'
  4. 'LOC-Os02g46510'
  5. 'LOC-Os12g13590'
  6. 'LOC-Os06g07780'
  7. 'LOC-Os06g05804'
  8. 'LOC-Os02g56110'
  9. 'LOC-Os01g32880'
  10. 'LOC-Os05g31780'
  11. 'LOC-Os06g51510'
  12. 'LOC-Os02g24134'
  13. 'LOC-Os12g44250'
  14. 'LOC-Os05g37120'
  15. 'LOC-Os03g53140'
  16. 'LOC-Os11g36400'
  17. 'LOC-Os06g07090'
  18. 'LOC-Os05g47550'
  19. 'LOC-Os02g55970'
  20. 'LOC-Os08g13270'
  21. 'LOC-Os03g42320'
  22. 'LOC-Os04g46079'
  23. 'LOC-Os03g02150'
  24. 'LOC-Os11g42989'
  25. 'LOC-Os09g04110'
  26. 'LOC-Os05g30640'
  27. 'LOC-Os09g36976'
  28. 'LOC-Os01g08400'
  29. 'LOC-Os02g35640'
  30. 'LOC-Os01g24950'
  31. 'LOC-Os06g40630'
  32. 'LOC-Os01g55799'
  33. 'LOC-Os01g67820'
  34. 'LOC-Os08g35470'
  35. 'LOC-Os03g50350'
  36. 'LOC-Os01g17430'
  37. 'LOC-Os02g25580'
  38. 'LOC-Os07g07000'
  39. 'LOC-Os07g14540'
  40. 'LOC-Os05g39610'
  41. 'LOC-Os02g11830'
  42. 'LOC-Os04g13470'
  43. 'LOC-Os12g24250'
  44. 'LOC-Os10g20240'
  45. 'LOC-Os03g58840'
  46. 'LOC-Os08g14640'
  47. 'LOC-Os04g58880'
  48. 'LOC-Os06g19620'
  49. 'LOC-Os05g02140'
  50. 'LOC-Os04g31330'
  51. 'LOC-Os03g16800'
  52. 'LOC-Os12g35360'
  53. 'LOC-Os06g07830'
  54. 'LOC-Os03g50300'
  55. 'LOC-Os01g50010'
  56. 'LOC-Os01g42830'
  57. 'LOC-Os01g69230'
  58. 'LOC-Os07g49300'
  59. 'LOC-Os02g11840'
  60. 'LOC-Os03g50340'
  61. 'LOC-Os03g20670'
  62. 'LOC-Os01g21850'
  63. 'LOC-Os02g43590'
  64. 'LOC-Os06g09850'
  65. 'LOC-Os04g52270'
  66. 'LOC-Os03g57760'
  67. 'LOC-Os10g33630'
  68. 'LOC-Os06g02570'
  69. 'LOC-Os11g07280'
  70. 'LOC-Os11g06740'
In [17]:
## Check gene existence in single cell data
match(transport.gene$Gene.ID,rownames(rc.exodermis@assays$SCT@data))
  1. 1791
  2. 5855
  3. 15582
  4. 9907
  5. 8234
  6. 21663
  7. 21602
  8. 11871
  9. 743
  10. 19746
  11. 22622
  12. 10978
  13. 7923
  14. 19885
  15. 13402
  16. 6913
  17. 20528
  18. 20170
  19. 10251
  20. 25033
  21. 14852
  22. 17512
  23. 12023
  24. 6177
  25. 27477
  26. 18550
  27. 28121
  28. 239
  29. 11205
  30. 629
  31. 21127
  32. 1373
  33. 1792
  34. 25418
  35. 15070
  36. 2518
  37. 10991
  38. 23888
  39. 22942
  40. 19961
  41. 10725
  42. 15665
  43. 8358
  44. 4145
  45. 13602
  46. 26032
  47. 17983
  48. 21945
  49. 19215
  50. 15855
  51. 14328
  52. 8513
  53. 21665
  54. 13301
  55. 1173
  56. 958
  57. 1836
  58. 23747
  59. 10726
  60. 15069
  61. 12722
  62. 2592
  63. 11440
  64. 21726
  65. 17722
  66. 15299
  67. 4373
  68. 21495
  69. 6491
  70. 5637
In [ ]:

Start to collect the mean value for gene expressions in SCT¶

In [ ]:
## rc.atrichoblast, rc.exodermis, rc.sclerenchyma,
## rc.cortex, rc.endodermis, rc.pericycle,
## rc.phloem, rc.protoxylem, rc.metaxylem
In [39]:
condition <- c("gel","soil")
dat1 <- c()
for (j in transport.gene$Gene.ID){
    exp1 <- c()
    sg1 <- scale(rc.exodermis@assays$SCT@data[j,])
   for (i in condition){
        exp1 <- c(exp1, mean(sg1[which(rc.exodermis$condition == i)]))} 
    dat1 <- rbind(dat1, exp1)
}
colnames(dat1) <- condition
rownames(dat1) <- transport.gene$Gene.ID
dat1
A matrix: 70 × 2 of type dbl
gelsoil
LOC-Os01g67810-0.073098600 0.035180386
LOC-Os11g24560 0.102547264-0.049353234
LOC-Os04g04020 0.089626353-0.043134748
LOC-Os02g46510 0.038253224-0.018410246
LOC-Os12g13590 0.003324574-0.001600028
LOC-Os06g07780 0.145421446-0.069987422
LOC-Os06g05804 0.186794745-0.089899276
LOC-Os02g56110-0.093899622 0.045191357
LOC-Os01g32880-0.011865153 0.005710378
LOC-Os05g31780 0.010880641-0.005236559
LOC-Os06g51510 0.077896193-0.037489338
LOC-Os02g24134 0.067500193-0.032486023
LOC-Os12g44250-0.056682072 0.027279553
LOC-Os05g37120 0.099743834-0.048004019
LOC-Os03g53140-0.088808999 0.042741377
LOC-Os11g36400-0.318422931 0.153248374
LOC-Os06g07090 0.080959528-0.038963639
LOC-Os05g47550 0.226980955-0.109239815
LOC-Os02g55970-0.145415827 0.069984718
LOC-Os08g13270-0.221410705 0.106559004
LOC-Os03g42320 0.099304782-0.047792715
LOC-Os04g46079 0.078838587-0.037942887
LOC-Os03g02150-0.052921556 0.025469719
LOC-Os11g42989 0.052982515-0.025499056
LOC-Os09g04110 0.154138885-0.074182891
LOC-Os05g30640-0.153022458 0.073645584
LOC-Os09g36976 0.053559333-0.025776663
LOC-Os01g08400-0.014463838 0.006961055
LOC-Os02g35640-0.020546135 0.009888301
LOC-Os01g24950 0.043090507-0.020738300
⋮⋮⋮
LOC-Os02g11830-0.036999680 0.017806949
LOC-Os04g13470 0.072993766-0.035129932
LOC-Os12g24250 0.131773400-0.063418986
LOC-Os10g20240 0.100999123-0.048608156
LOC-Os03g58840 0.366035252-0.176162900
LOC-Os08g14640 0.051354967-0.024715762
LOC-Os04g58880 0.076305346-0.036723706
LOC-Os06g19620 0.082324883-0.039620747
LOC-Os05g02140 0.007184396-0.003457656
LOC-Os04g31330 0.036746254-0.017684982
LOC-Os03g16800 0.275984372-0.132823839
LOC-Os12g35360 0.067357347-0.032417276
LOC-Os06g07830 0.171550369-0.082562569
LOC-Os03g50300 0.101794981-0.048991180
LOC-Os01g50010-0.016116014 0.007756203
LOC-Os01g42830 0.091399950-0.043988332
LOC-Os01g69230-0.109092951 0.052503497
LOC-Os07g49300 0.061826155-0.029755262
LOC-Os02g11840 0.048997594-0.023581221
LOC-Os03g50340 0.054882588-0.026413510
LOC-Os03g20670 0.266896524-0.128450103
LOC-Os01g21850-0.037484345 0.018040205
LOC-Os02g43590 0.192361793-0.092578546
LOC-Os06g09850 0.243395581-0.117139733
LOC-Os04g52270 0.426174050-0.205106083
LOC-Os03g57760 0.225950898-0.108744077
LOC-Os10g33630 0.211981568-0.102021015
LOC-Os06g02570 0.160474833-0.077232211
LOC-Os11g07280 0.214003841-0.102994280
LOC-Os11g06740 0.300225182-0.144490287
In [38]:
# Save the calculated gene expression
write.csv(dat1, file = "./1-DE_analysis/Gene_expression_data/transport_atrichoblast.csv", row.names = TRUE)
In [179]:
# Check DE gene expression-defense
DefaultAssay(rc.comparison) <- "SCT"
options(repr.plot.width=12, repr.plot.height=6)
FeaturePlot(rc.comparison, features = "LOC-Os07g14540",
            cols = c("grey", "red"), label=F, repel=F, pt.size = 0.8, 
            label.size = 3.5, order=T, split.by="condition")
In [3]:
dat2 <- read.csv("./1-DE_analysis/Gene_expression_data//GO-term-plot-120723.csv",header = TRUE, row.names = 1)
dat2
A data.frame: 3 × 9
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
Defense responses2.7610587 2.2714453.364767 0.24674920.071512850.14564710.14968610.119812880.07120587
phosphorus metabolic process0.7781572 8.5467502.263718 2.08482500.512045160.03185440.22574420.018774160.16932405
vesicle-mediated transport0.708212222.1082509.29913522.38307462.373768992.99981334.83759710.000000000.14586369
In [4]:
dat2 <- data.matrix(dat2)
dat2
A matrix: 3 × 9 of type dbl
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
Defense responses2.7610587 2.2714453.364767 0.24674920.071512850.14564710.14968610.119812880.07120587
phosphorus metabolic process0.7781572 8.5467502.263718 2.08482500.512045160.03185440.22574420.018774160.16932405
vesicle-mediated transport0.708212222.1082509.29913522.38307462.373768992.99981334.83759710.000000000.14586369
In [6]:
col_fun = colorRamp2(c(0,2,4),c('navy', "khaki1", "red"))
options(repr.plot.width=16, repr.plot.height=8)
Heatmap(dat2, rect_gp = gpar(col = "white", lwd = 0.1) , show_heatmap_legend = TRUE, name = paste0("Averaged Gene","\n","Expression"), 
            col = col_fun, cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(dat2), rot = 30, location = unit(1, "npc"), just = "right")))
In [7]:
dat3 <- read.csv("./1-DE_analysis/Gene_expression_data/Defense_gene_foldchange-120723.csv",header = TRUE, row.names = 1)
dat3
A data.frame: 8 × 9
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
LOC-Os11g44990 2.462.662.120 1.840 0.319-0.506 0.3080 3.530 0.923
LOC-Os11g45090 3.022.732.460 1.910 1.110 1.730 1.3500 1.760 1.650
LOC-Os11g44960 4.133.182.640 2.470-0.206 1.040-0.0586 1.200-0.893
LOC-Os11g12000 1.352.371.580 0.735-0.960 0.107-0.4830 0.685-1.760
LOC-Os07g19320 3.582.310.196-0.471 0.483-2.950-0.5400 0.362-2.460
LOC-Os11g12040 2.733.712.560 1.420 1.130-0.414-0.6360 0.628 0.139
LOC-Os09g10054 1.211.832.030 2.180 0.112 0.622 0.2020 0.394 1.470
LOC-Os06g43670-0.832.001.250 1.890 0.439-0.953 0.9210-0.650 1.100
In [8]:
dat3 <- data.matrix(dat3)
dat3
A matrix: 8 × 9 of type dbl
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
LOC-Os11g44990 2.462.662.120 1.840 0.319-0.506 0.3080 3.530 0.923
LOC-Os11g45090 3.022.732.460 1.910 1.110 1.730 1.3500 1.760 1.650
LOC-Os11g44960 4.133.182.640 2.470-0.206 1.040-0.0586 1.200-0.893
LOC-Os11g12000 1.352.371.580 0.735-0.960 0.107-0.4830 0.685-1.760
LOC-Os07g19320 3.582.310.196-0.471 0.483-2.950-0.5400 0.362-2.460
LOC-Os11g12040 2.733.712.560 1.420 1.130-0.414-0.6360 0.628 0.139
LOC-Os09g10054 1.211.832.030 2.180 0.112 0.622 0.2020 0.394 1.470
LOC-Os06g43670-0.832.001.250 1.890 0.439-0.953 0.9210-0.650 1.100
In [13]:
col_fun = colorRamp2(c(-0.5,2,4),c('navy', "khaki1", "red"))
options(repr.plot.width=16, repr.plot.height=8)
Heatmap(dat3, rect_gp = gpar(col = "white", lwd = 0.1) , show_heatmap_legend = TRUE, name = paste0("Averaged Gene","\n","Expression"), 
            col = col_fun, cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(dat3), rot = 30, location = unit(1, "npc"), just = "right")))
In [166]:
dat4 <- read.csv("./1-DE_analysis/Gene_expression_data/Transport_gene_foldchange-120623.csv",header = TRUE, row.names = 1)
dat4
A data.frame: 14 × 9
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
LOC_Os01g67810 1.4401.5001.390 0.8350 0.3950-0.1830 0.515 0.7310-0.6730
LOC_Os11g36400 3.2904.2403.200 1.3300 0.1880-0.3300 0.227 1.2700-4.0100
LOC_Os11g42989 1.8601.2400.530 0.4480 2.1700 2.0700 0.478 1.0400-0.2860
LOC_Os05g30640 2.0102.2601.490 0.7220-0.0729 1.3800-0.896-1.1000-0.2180
LOC_Os01g67820 1.2401.3801.110 0.6670 0.7200-0.0148 0.211 0.8500-0.2140
LOC_Os08g35470 1.4102.3701.860 2.0400 1.5200 0.3020 1.990 1.1400 2.4600
LOC_Os05g39610 1.2001.6201.140 0.5100 0.2980 0.8540 0.394 0.9340 0.2330
LOC_Os04g58880 0.1920.9700.861 0.4450 0.5430 0.4760 0.617 0.5660-0.0736
LOC_Os04g31330-0.3930.8210.821 1.4400 0.3600 1.2200 0.538 0.0233 0.9620
LOC_Os01g69230 0.9391.5401.290 1.3300 0.2910-0.7080 0.327 0.4350 0.5240
LOC_Os05g31780 0.9350.9600.870 1.1600-0.1530 0.5170 0.863 1.4900 0.3210
LOC_Os02g55970 1.0301.8301.130 0.7110 0.9620-0.3470 0.830 0.5790 0.7830
LOC_Os08g13270 1.7203.0601.720-0.0734 0.0187-1.0100-2.650-0.0893-1.6000
LOC_Os07g14540 1.9501.4001.430 1.5100 0.5840 1.1400 0.195 1.0600-4.2400
In [167]:
dat4 <- data.matrix(dat4)
dat4
A matrix: 14 × 9 of type dbl
AtrichoblastExodermisSclerenchymaCortexEndodermisPericyclePhloemProtoxylemMetaxylem
LOC_Os01g67810 1.4401.5001.390 0.8350 0.3950-0.1830 0.515 0.7310-0.6730
LOC_Os11g36400 3.2904.2403.200 1.3300 0.1880-0.3300 0.227 1.2700-4.0100
LOC_Os11g42989 1.8601.2400.530 0.4480 2.1700 2.0700 0.478 1.0400-0.2860
LOC_Os05g30640 2.0102.2601.490 0.7220-0.0729 1.3800-0.896-1.1000-0.2180
LOC_Os01g67820 1.2401.3801.110 0.6670 0.7200-0.0148 0.211 0.8500-0.2140
LOC_Os08g35470 1.4102.3701.860 2.0400 1.5200 0.3020 1.990 1.1400 2.4600
LOC_Os05g39610 1.2001.6201.140 0.5100 0.2980 0.8540 0.394 0.9340 0.2330
LOC_Os04g58880 0.1920.9700.861 0.4450 0.5430 0.4760 0.617 0.5660-0.0736
LOC_Os04g31330-0.3930.8210.821 1.4400 0.3600 1.2200 0.538 0.0233 0.9620
LOC_Os01g69230 0.9391.5401.290 1.3300 0.2910-0.7080 0.327 0.4350 0.5240
LOC_Os05g31780 0.9350.9600.870 1.1600-0.1530 0.5170 0.863 1.4900 0.3210
LOC_Os02g55970 1.0301.8301.130 0.7110 0.9620-0.3470 0.830 0.5790 0.7830
LOC_Os08g13270 1.7203.0601.720-0.0734 0.0187-1.0100-2.650-0.0893-1.6000
LOC_Os07g14540 1.9501.4001.430 1.5100 0.5840 1.1400 0.195 1.0600-4.2400
In [168]:
col_fun = colorRamp2(c(0,1.5,3),c('navy', "khaki1", "red"))
options(repr.plot.width=10, repr.plot.height=8)
Heatmap(dat4, rect_gp = gpar(col = "white", lwd = 0.1) , show_heatmap_legend = TRUE, name = paste0("Averaged Gene","\n","Expression"), 
            col = col_fun, cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(dat4), rot = 30, location = unit(1, "npc"), just = "right")))
In [ ]:

In [ ]:

In [ ]:

In [ ]:

In [4]:
# Check all the packages versions
sessionInfo()
R version 4.2.0 (2022-04-22)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: CentOS Stream 8

Matrix products: default
BLAS/LAPACK: /hpc/group/pbenfeylab/mz187/miniconda3/envs/muscat/lib/libopenblasp-r0.3.21.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats4    grid      stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
 [1] future_1.32.0               scran_1.26.0               
 [3] scuttle_1.8.0               SingleCellExperiment_1.20.0
 [5] SummarizedExperiment_1.28.0 Biobase_2.58.0             
 [7] GenomicRanges_1.50.0        GenomeInfoDb_1.34.9        
 [9] IRanges_2.32.0              S4Vectors_0.36.0           
[11] BiocGenerics_0.44.0         MatrixGenerics_1.10.0      
[13] matrixStats_1.0.0           limma_3.54.0               
[15] muscat_1.12.0               ggrepel_0.9.3              
[17] gprofiler2_0.2.2            GeneOverlap_1.34.0         
[19] circlize_0.4.15             ComplexHeatmap_2.14.0      
[21] cowplot_1.1.1               Seurat_3.1.5               
[23] lubridate_1.9.2             forcats_1.0.0              
[25] stringr_1.5.0               dplyr_1.1.2                
[27] purrr_1.0.1                 readr_2.1.4                
[29] tidyr_1.3.0                 tibble_3.2.1               
[31] ggplot2_3.4.2               tidyverse_2.0.0            

loaded via a namespace (and not attached):
  [1] utf8_1.2.3                reticulate_1.25          
  [3] tidyselect_1.2.0          lme4_1.1-33              
  [5] RSQLite_2.3.1             AnnotationDbi_1.60.0     
  [7] htmlwidgets_1.6.2         BiocParallel_1.32.5      
  [9] Rtsne_0.16                ScaledMatrix_1.6.0       
 [11] munsell_0.5.0             codetools_0.2-19         
 [13] ica_1.0-3                 statmod_1.4.36           
 [15] pbdZMQ_0.3-9              withr_2.5.0              
 [17] colorspace_2.1-0          uuid_1.1-0               
 [19] ROCR_1.0-11               listenv_0.9.0            
 [21] Rdpack_2.4                repr_1.1.6               
 [23] GenomeInfoDbData_1.2.9    bit64_4.0.5              
 [25] glmmTMB_1.1.7             parallelly_1.36.0        
 [27] vctrs_0.6.3               generics_0.1.3           
 [29] timechange_0.2.0          R6_2.5.1                 
 [31] doParallel_1.0.17         ggbeeswarm_0.7.2         
 [33] clue_0.3-64               rsvd_1.0.5               
 [35] locfit_1.5-9.8            bitops_1.0-7             
 [37] cachem_1.0.8              DelayedArray_0.24.0      
 [39] scales_1.2.1              beeswarm_0.4.0           
 [41] gtable_0.3.3              beachmat_2.14.0          
 [43] globals_0.16.2            rlang_1.1.1              
 [45] genefilter_1.80.0         GlobalOptions_0.1.2      
 [47] splines_4.2.0             TMB_1.9.4                
 [49] lazyeval_0.2.2            broom_1.0.5              
 [51] reshape2_1.4.4            backports_1.4.1          
 [53] tools_4.2.0               gplots_3.1.3             
 [55] RColorBrewer_1.1-3        ggridges_0.5.4           
 [57] Rcpp_1.0.10               plyr_1.8.8               
 [59] base64enc_0.1-3           sparseMatrixStats_1.10.0 
 [61] progress_1.2.2            zlibbioc_1.44.0          
 [63] RCurl_1.98-1.12           prettyunits_1.1.1        
 [65] viridis_0.6.3             pbapply_1.7-0            
 [67] GetoptLong_1.0.5          zoo_1.8-12               
 [69] cluster_2.1.4             variancePartition_1.28.0 
 [71] magrittr_2.0.3            data.table_1.14.8        
 [73] lmerTest_3.1-3            lmtest_0.9-40            
 [75] RANN_2.6.1                fitdistrplus_1.1-11      
 [77] hms_1.1.3                 patchwork_1.1.2          
 [79] evaluate_0.21             xtable_1.8-4             
 [81] pbkrtest_0.5.2            RhpcBLASctl_0.23-42      
 [83] XML_3.99-0.9              gridExtra_2.3            
 [85] shape_1.4.6               compiler_4.2.0           
 [87] scater_1.26.0             KernSmooth_2.23-21       
 [89] crayon_1.5.2              minqa_1.2.5              
 [91] htmltools_0.5.5           tzdb_0.4.0               
 [93] geneplotter_1.76.0        DBI_1.1.3                
 [95] MASS_7.3-60               boot_1.3-28.1            
 [97] Matrix_1.5-4.1            cli_3.6.1                
 [99] rbibutils_2.2.13          metapod_1.6.0            
[101] parallel_4.2.0            igraph_1.5.0             
[103] pkgconfig_2.0.3           numDeriv_2016.8-1.1      
[105] IRdisplay_1.1             plotly_4.10.0            
[107] foreach_1.5.2             annotate_1.76.0          
[109] vipor_0.4.5               dqrng_0.3.0              
[111] blme_1.0-5                XVector_0.38.0           
[113] digest_0.6.31             sctransform_0.3.5        
[115] RcppAnnoy_0.0.20          tsne_0.1-3.1             
[117] Biostrings_2.66.0         leiden_0.4.3             
[119] uwot_0.1.14               edgeR_3.40.0             
[121] DelayedMatrixStats_1.20.0 gtools_3.9.4             
[123] rjson_0.2.21              nloptr_2.0.3             
[125] lifecycle_1.0.3           nlme_3.1-157             
[127] jsonlite_1.8.5            aod_1.3.2                
[129] BiocNeighbors_1.16.0      viridisLite_0.4.2        
[131] fansi_1.0.4               pillar_1.9.0             
[133] lattice_0.21-8            KEGGREST_1.38.0          
[135] fastmap_1.1.1             httr_1.4.6               
[137] survival_3.5-5            glue_1.6.2               
[139] png_0.1-8                 iterators_1.0.14         
[141] bluster_1.8.0             bit_4.0.5                
[143] stringi_1.7.6             blob_1.2.4               
[145] BiocSingular_1.14.0       DESeq2_1.38.0            
[147] caTools_1.18.2            memoise_2.0.1            
[149] IRkernel_1.3.2            irlba_2.3.5.1            
[151] future.apply_1.11.0       ape_5.7-1